2013-04-26 49 views
1

我想检查当我点击下载驱动程序,其他锂离子打开,当我再次点击下载驱动程序时,它应该再次关闭。没有盘旋只是点击。我也不想它关闭时,我对某些里的点击下载驱动程序无法识别我是否已经点击列表项目

下这是我的HMTL:

<ul class="dropdown"> 
    <li><a id="drivers" onclick="dropdown(this); return false;" class="dir">Download Drivers</a> 
     <ul id="driversmenu" class="sub"> 
      <li><a>Download Drivers</a></li> 
      <li><a>Driver Widget</a></li> 
      <li><a>NVIDIA Software</a></li> 
     </ul> 
    </li> 
    </ul> 

这里的Javascript代码:

function dropdown(obj) 
    { 
     alert("klik"); 
     var elements = document.getElementsByClassName("sub"); 
     var ids = ''; 
     for (var i = 0; i < elements.length; i++) 
     { 
      document.getElementById(elements[i].id).style.display = 'none'; 
     } 

     if (document.getElementById(obj.id + 'menu').style.display == 'block') 
     { 
      alert("al open"); 
      document.getElementById(obj.id + 'menu').style.display = 'hidden'; 
     } 
     else if (document.getElementById(obj.id + 'menu').style.display = 'hidden') 
     { 
      alert("niet open"); 

      document.getElementById(obj.id + 'menu').style.display = 'block'; 
     } 
     return false; 
    }; 

而CSS,但我不知道它是否相关:

ul.dropdown { list-style-type: none; width: 300px;float: left; height: 0px; margin-top: 0px; padding-left: 0px; } 
ul.dropdown a { display: block; color: white; text-decoration: none;  list-style-type: none; } 
ul.dropdown li { float: left; padding: 0 0px; border: 1px dotted #d0d0d0;  list-style-type: none;} 
ul.dropdown li ul { display: none; position: absolute; z-index: 99; } 
ul.dropdown li ul li { clear: both; margin-left: 0px; padding-left: 0px; border: 0; min-width: 150px; } 
ul.dropdown li ul li:hover { background-color: #d1d1d1; } 
ul.dropdown li ul li:hover a { color: red; } 

我只收到“Klik”和“Niet开”, 所以这一块从来不打电话:

if (document.getElementById(obj.id + 'menu').style.display == 'block') 
{ 
    alert("al open"); 
    document.getElementById(obj.id + 'menu').style.display = 'hidden'; 
} 

是否有人知道我做错了什么? 在此先感谢

+0

'li'应该打开/关闭或孩子'ul' – 2013-04-26 12:50:53

+0

你能更具体?你知道解决它的方法,所以它也关闭,当我第二次点击下载驱动程序 – 2013-04-26 12:53:50

+0

它通常是建议添加小提琴..这里是一个http://jsfiddle.net/D522X/1/ – Mortalus 2013-04-26 12:55:04

回答

2

尝试

function dropdown(obj) 
{ 
    var elements = document.getElementsByClassName("sub"); 
    var ids = '', display = document.getElementById(obj.id+'menu').style.display; 
    for(var i=0; i < elements.length; i++) { 
     elements[i].style.display='none'; 
    } 
    if(!display || display=='none'){ 
     document.getElementById(obj.id+'menu').style.display='block'; 
    } 
    return false; 
}; 

演示:Fiddle

+0

哇, 那很简单。但它的工作。你先生,我的一天。谢谢! – 2013-04-26 13:00:58