2011-11-10 36 views
1

我正在使用此腳本來顯示/隱藏我的頁面上的菜單部分,但似乎無法在Internet Explorer上工作。我怎樣才能改變代碼,以便它可以在IE上運行?更改顯示隱藏腳本,以便它可以在IE上工作

我認爲這可以通過切換功能更容易地在JQuery中完成,但我想保持相同的結構,任何人都可以幫助我嗎?

visibleDiv1 = ""; 
visibleDiv2 = ""; 
visibleDiv3 = ""; 
visibleDiv4 = ""; 

function showHide1(elementid1){ 
    if (document.getElementById(elementid1).style.display == 'none'){ 
    document.getElementById(elementid1).style.display = ''; 
    if(visibleDiv1 != ""){ 
     if(visibleDiv1 != elementid1){ 
     document.getElementById(visibleDiv1).style.display = 'none'; 
     } 
    } 
    visibleDiv1 = elementid1; 
    } else { 
    document.getElementById(elementid1).style.display = 'none'; 

    } 
} 

function showHide2(elementid2){ 
    if (document.getElementById(elementid2).style.display == 'none'){ 
    document.getElementById(elementid2).style.display = ''; 
    if(visibleDiv2 != ""){ 
     if(visibleDiv2 != elementid2){ 
     document.getElementById(visibleDiv2).style.display = 'none'; 
     } 
    } 
    visibleDiv2 = elementid2; 
    } else { 
    document.getElementById(elementid2).style.display = 'none'; 
    } 
} 

function showHide3(elementid3){ 
    if (document.getElementById(elementid3).style.display == 'none'){ 
    document.getElementById(elementid3).style.display = ''; 
    if(visibleDiv3 != ""){ 
     if(visibleDiv3 != elementid3){ 
     document.getElementById(visibleDiv3).style.display = 'none'; 
     } 
    } 
visibleDiv3 = elementid3; 
    } else { 
    document.getElementById(elementid3).style.display = 'none'; 
    } 
} 

function showHide4(elementid4){ 
    if (document.getElementById(elementid4).style.display == 'none'){ 
    document.getElementById(elementid4).style.display = ''; 
    if(visibleDiv4 != ""){ 
     if(visibleDiv4 != elementid4){ 
     document.getElementById(visibleDiv4).style.display = 'none'; 
     } 
    } 
    visibleDiv4 = elementid4; 
    } else { 
    document.getElementById(elementid4).style.display = 'none'; 
    } 
} 

回答

0

這實在是很糟糕的編碼,你需要重新使用你的代碼,並簡單地調用你想隱藏的元素。您已爲每個元素創建函數。

你應該做的一個主要功能是這樣的:

function showHide(elementid, visibleDiv){ 
    if (document.getElementById(elementid).style.display == 'none'){ 
    document.getElementById(elementid).style.display = ''; 
    if(visibleDiv != ""){ 
     if(visibleDiv != elementid1){ 
     document.getElementById(visibleDiv).style.display = 'none'; 
     } 
    } 
    visibleDiv = elementid; 
    } else { 
    document.getElementById(elementid).style.display = 'none'; 

    } 
} 

,後來乾脆調用這個函數做這樣的事情:

showHide('id-of-your-element', 'visible-div-etc'); 

我真的建議抓住jQuery的壽,因爲這簡單開箱即可更好地支持隱藏的東西,您可以專注於其他事情。使用toggle()或只是普通的.hide()/.show()函數。

+0

好多了!我確實嘗試使用Jquery腳本來做同樣的事情,但是當點擊一個新的腳本時,我遇到了關閉同級單元的問題。實際上,我發現代碼有什麼問題,看起來IE不喜歡以數字開頭的ID,所以我給它們添加了一個前綴,現在它正在運行。 – MACC

+0

umm ...名稱/變量(id/class)不能是數字,它的編程,變量不能是'12 =「hello」'。這是常識。 – Jakub

+0

@ S3nd41,如果你喜歡我的答案btw,檢查綠色複選框下的投票上/下按鈕。 – Jakub

相關問題