javascript函数失去切换的能力

时间:2016-10-30 17:46:19

标签: javascript function toggle removeclass

使用此脚本根据目标ID打开多个菜单中的一个。该课程是.dropdownDiv。该脚本首先删除" show"来自任何.dropdownDiv的类,然后允许用户切换目标.dropdownDiv。

问题是,.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>

1 个答案:

答案 0 :(得分:0)

一种简单的方法来切换某些内容,即每次点击某个动作时都使用一个标记并将其翻转,这样你就可以这样做:

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

因此,您可以删除点击的下拉菜单,而不是删除所有下拉类。