2011-05-03 64 views
4

基本上是有可能做這樣的事情....放置一個變量作爲HREF

<a href=link onClick="clicked();">Click me!</a> 

<script> 
function clicked() { 
    if(myVar == 1) { 
     link="http://stackoverflow.com" 
    } 
    else if (myVar == 2) { 
     link="http://google.com" 
    } 
} 
</script> 

這個例子可能是不可能的,因爲它發射的同時... 但它是在所有可能在那裏使用變量?

基本上,我需要一個鏈接,根據變量將你帶到兩個不同的地方。 我想我可以有兩個鏈接,並根據變量分別隱藏/顯示每一個,但我想知道是否有可能以另一種方式?

我正在使用HTML,CSS,JavaScript和JQuery ...

謝謝!

回答

3

你可以這樣做......

$('a').click(function(event) { 
    if (condition) { 
     event.preventDefault(); 
     window.location = 'http://different-url.com'; 
    } 
}); 

如果條件滿足,那麼它會帶你到一個不同的URL。

否則,鏈接將按預期工作。

如果你不想使用jQuery,那會是......

var anchors = document.getElementsByTagName('a'); 
for (var i = 0, anchorsLength; i < anchorsLength; i++) { 
    anchors[i].onclick = function(event) { 
     if (condition) { 
      event.preventDefault(); 
      window.location = 'http://different-url.com'; 
     } 
    } 
} 
+0

我很好奇,我總是看到'event.preventDefault();' - 這究竟是什麼「阻止」? – Johannes 2011-05-07 19:34:55

+0

@Johannes它可以防止該事件的瀏覽器的默認行爲。 – alex 2011-05-08 00:57:30

+0

是否有可能列出瀏覽器對事件的默認行爲? – Johannes 2011-05-08 01:46:53

0

你可以這樣做:

<script> function clicked() { 
    if(myVar == 1) { 
     window.location="http://stackoverflow.com" 
    } 
    else if (myVar == 2) { 
     window.location="http://google.com" 
    } } 
</script> 
0

嘗試了這一點

<a href=link onClick="clicked();">Click me!</a> 

<script> 
function clicked() { 
    if(myVar == 1) { 
     location.replace("http://stackoverflow.com"); 
    } 
    else if (myVar == 2) { 
     location.replace("http://google.com"); 
    } 
} 
</script> 

乾杯。這將根據myVar值將您帶到所需的地方!

1

你可以簡單地使用JavaScript做了重新定位:

<script> 
function clicked() { 
    if(myVar == 1) { 
     window.location = "http://url1.com"; 
    } 
    else if (myVar == 2) { 
     window.location = "http://url2.com"; 
    } 
} 
</script> 
1

不,這不可能做到這一點,你所希望的方式。

你爲什麼不這樣做,而不是 -

<a href="http://www.example.com" onClick="clicked();">Click me!</a> 

<script> 
function clicked() 
{ 
    if(myVar == 1) 
    { 
     window.location.href = "www.stackoverflow.com"; 
    } 
    else if (myVar == 2) 
    { 
     window.location.href = "www.google.com"; 
    } 
} 

看看Mozilla Developer Center有關window.location對象進一步引用。

0
function clicked() { 
    var dest = ""; 
    if(myVar) 
     dest = "http://stackoverflow.com"; 
    else 
     dest = "http://google.com" 
    window.navigate(dest); 

但我看到大家都說過一樣的。只要檢查哪些方法在大多數瀏覽器上工作