2013-08-27 57 views
0

我用了這個問題的答案的一個問題,我本來有: JavaScript - Hide all other divs使用Javascript - 隱藏當點擊一個其它的div,但沒有雙擊

它適用於什麼,我需要做的,但我想這樣做,當你點擊你用來激活幻燈片的原始div時,它不會隱藏顯示幻燈片。所以你沒有雙擊當前活動div。

<script> 
var divState = {}; 
function showhide(id) { 
if (document.getElementById) { 
    var divid = document.getElementById(id); 
    divState[id] = (divState[id]) ? false : true; 
    //close others 
    for (var div in divState){ 
     if (divState[div] && div != id){ 
      document.getElementById(div).style.display = 'none'; 
      divState[div] = false; 
     } 
    } 
    divid.style.display = (divid.style.display == 'block' ? 'none' : 'block'); 
} 
} 
</script> 

你可以在這裏查看我的項目,當您嘗試點擊一個字符,它改變了幻燈片,但是當你對他們的雙擊,它隱藏你在看幻燈片。我想阻止「隱藏」功能,所以如果您正在查看角色幻燈片。你不能再次點擊他們的插圖關閉它。但是,如果你點擊不同的字符,它會隱藏/切換幻燈片: http://www.redvelvetevents.com/tracy/newtest_july2013.htm

希望這是有道理的。我需要添加到上面的代碼,所以當前div不會激活該特定幻燈片的HIDE功能?只有當你點擊一個不同的角色。

謝謝!

+0

先不使用DIV作爲變量名 – Newben

+0

爲什麼不改變行'divState [ID] =(divState [ID])? false:true;'到'divState [id] = true;'。 'divid.style.display =(divid.style.display =='block'?'none':'block');'divid.style.display ='block';' –

回答

1

您可以更改您的代碼如下:

var divState = {}; 
function showhide(id) { 
if (document.getElementById) { 
    var divid = document.getElementById(id); 
    divState[id] = true;//I changed this line 
    //close others 
    for (var div in divState){ 
     if (divState[div] && div != id){ 
      document.getElementById(div).style.display = 'none'; 
      divState[div] = false; 
     } 
    } 
    divid.style.display = 'block';//I changed this line 
} 
} 
+0

完美,謝謝!!!! – jgrannis

相關問題