2016-10-30 50 views
0

使用此腳本根據目標ID打開多個菜單中的一個。該類是.dropdownDiv。該腳本首先從任何.dropdownDiv中刪除「show」類,然後允許用戶切換目標.dropdownDiv。javascript函數失去切換能力

問題是,.remove和.toggle看起來不起作用。他們單獨工作很好。我可以整天切換一個div show-unshow,但點擊其他按鈕將無法控制它。我可以做相反的事情,並有一個按鈕從另一個按鈕中刪除div,但然後定位按鈕不會刪除它自己的div。

<script type="text/javascript"> 

    document.addEventListener('DOMContentLoaded', function(event) { 
    var divs = document.querySelectorAll('.navButton'); 

    for (var i = 0; i < divs.length; i++) { 
    divs[i].addEventListener('click', showDropDown); 
    } 
    }); 

function showDropDown() { 

//un-show all dropdowns 
var containers = document.querySelectorAll('.dropdownDiv'); 
    for (var i = 0; i < containers.length; i++) { 
    containers[i].classList.remove('show'); 
    } 

// show targeted dropdown only 
var d = document.getElementById(event.target.dataset.target); 
d.classList.toggle("show"); 
console.log(d); 
} 

</script> 

回答

0

一個簡單的方法來切換的東西,這是使用標誌和每個你打一個動作時翻轉,所以你可以做一些事情,像這樣:

if(a) 
{//something to do} 
else 
{// another action to do} 
a = ! a; 

的話,你可以刪除點擊下拉菜單而不是刪除所有下拉類。