2012-08-08 72 views
0

我正在嘗試爲我的網站切換菜單。但它不起作用。我希望當任何人點擊鏈接時,一個菜單將打開,而不是一個新的頁面。以下是一個html和 java腳本片段。切換菜單不起作用

<div> 
<a href="http://directory/websites.jsp" class="menu_link">Menu</a> 
<ul class="menu" id="websites"> 
    <li><i>Stackexchange</i> <br/> 
    <a href="#">SE</a> 
    </li> 
</ul> 
</div> 

JS:

window.onload = initAll; 

function initAll() { 
    var allLinks = document.getElementsByTagName("a"); 
    for(var i=0 ; i<allLinks.length ; i++) { 
     if(allLinks[i].className.indexOf("menu_link") > -1) { 
      allLinks[i].onclick = toggleMenu; 
     } 
    } 
} 

function toggleMenu() { 
    var start = this.href.lastIndexOf("/") + 1; 
    var stop = this.href.lastIndexOf("."); 
    var thisMenuName = this.href.substring(start,stop); 
    var thisMenu = document.getElementById(thisMenuName).style; 

    if(thisMenu.display == "block") { 
    thisMenu.display = "none"; 
    } else { 
    thisMenu.display = "block"; 
    } 

    return false;  
} 

我在哪裏做的錯誤?

+0

你的html不完整。 UL哪裏包含你的隱藏選項 – Carlos 2012-08-08 06:18:18

+0

把thisMenu.style.display代替thisMenu.display – Carlos 2012-08-08 06:22:56

回答

0
<div> 
<a href="http://directory/websites.jsp" class="menu_link"> 
<ul class="menu" id="websites"> 
    <li><i>Stackexchange</i> <br/> 
    <a href="#" class="menu_link">SE</a> 
<ul id="menu"> 
<li>abc...</li> 
<li>abc...</li> 
</ul> 

    </li> 
</ul> 
</div> 
+0

你能解釋一下這個嗎? – saplingPro 2012-08-08 06:45:57

+0

你的函數在你的函數中提到的類名「menu_link」上工作。 allLinks [i] .className.indexOf(「menu_link」) – Carlos 2012-08-08 07:08:56

+0

然後呢?我犯了什麼錯誤?請說清楚。並將其包含在您的回答中 – saplingPro 2012-08-08 07:19:00