2012-08-08 59 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