2014-02-19 122 views
0

我正在使用Javascript在URL中查找「#mode2」,如果是這樣,它將產生與畫布不同的彩色圖像。腳本的這部分工作正常。問題出在產生切換超鏈接的腳本中。它會第一次正確切換(作爲腳本的不同部分,這是有意義的),然後根據它開始的位置切換一次或兩次。Javascript切換不起作用

I.E.藍色是默認的,所以如果頁面加載藍色,它將切換橙色,然後回到藍色,然後不起作用,就像在橙色它將切換到藍色,然後將無法正常工作。

我知道它在我的代碼中可能有些愚蠢的錯誤,但我找不到它,所以如果有人能幫助我,我會很感激。

<script type="text/javascript"> 
function toggle(blue){ 

if (blue == 0) { 
blue = 1; 
} 
else if (blue == 1) { 
blue = 0; 
} 
if (blue == 0){ 
var container = document.getElementById("navi"); 
      var content = '<a href="contact.html#mode1" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html#mode2" title="home">back</a>'; 
      container.innerHTML= content; 
} 
else{ 
var container = document.getElementById("navi"); 
      var content = '<a href="contact.html#mode2" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html" title="home">back</a>'; 
      container.innerHTML= content; 

} 

} 

var pathArray = document.URL; 
      if (pathArray.indexOf("mode2") != -1){ 
      var blue = 0; 
var container = document.getElementById("navi"); 
      var content = '<a href="contact.html#mode1" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html#mode2" title="home">back</a>'; 
      container.innerHTML= content; 
} 
else{ 
var blue = 1; 
var container = document.getElementById("navi"); 
      var content = '<a href="contact.html#mode2" title="toggle" onclick="toggle(blue);">toggle colors</a> - <a href="index.html" title="home">back</a>'; 
      container.innerHTML= content; 


} 
</script> 
+0

[jsfiddle](http://jsfiddle.net)會有所幫助。 – bjb568

+0

向我們顯示您的HTML – gfrobenius

回答

0

取而代之的是(對所有實例):

onclick="toggle(blue);"

做到這一點:

onclick="toggle('+blue+');"

這裏是一個小提琴:http://jsfiddle.net/YF4Nc/1/

+0

它的工作,所以謝謝。你能解釋爲什麼這有效嗎? – user3084366

+0

範圍界定問題。我不確定所有代碼的位置,所以我用這種方式解決了這個問題,它只是傳入值'0'或'1'而不是'blue'變量。解決這個問題的另一種方法是讓你的'blue'變量全局變量,只是刪除它前面的'VAR',不要將它傳遞給切換函數,它將起作用。這裏有一個例子:** http://jsfiddle.net/YF4Nc/8/**既然它是全球性的,不管你的鏈接出現在哪裏,他們都可以訪問'blue',它是當前的全球價值; – gfrobenius