javascript - 当我在菜单外单击时如何隐藏多个 jQuery toggle()?

标签 javascript jquery html css

我的页面上有多个切换元素。单击 div 元素的外部时,我试图让它们关闭。我现在使用的脚本可以很好地处理多个元素,但它也会在单击 div 内部时关闭 div

   <ul>      

<li class="menuContainer">
  <a class="top" href="#">Menu</a>   
  <div class="sub"> 
    <a class="top" href="google.com">item in dropdown menu with valid   url when clicked here div.sub should stay close</a>
 </div>
</li>
 <li class="menuContainer">
   <a class="top" href="#">Menu</a>   
    <div class="sub"> 
     <a class="top" href="#">item in dropdown menu when clicked here div.sub should stay open</a>
   </div>
</li>  

$(document).ready(function(){

$('li.menuContainer').each(function() {
var $dropdown = $(this);

$("a.top", $dropdown).click(function(e) {
  e.preventDefault();
  $div = $("div.sub", $dropdown);
  $div.toggle();
  $("li.menuContainer div.sub").not($div).hide();
  $( "#effect" ).hide();
  return false;
});
 $("li.menuContainer div.sub").on("click", function (event) {
    event.stopPropagation();
});

});



$(document).on("click", function (){
  $("li.menuContainer div.sub").hide();

});

});

我想做的是在单击内部时停止关闭 div。有什么帮助吗?

最佳答案

我认为您正在寻找 e.stopPropagation();。在子元素的事件中使用它。

这将阻止事件传播到父 div。

关于javascript - 当我在菜单外单击时如何隐藏多个 jQuery toggle()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097946/

相关文章:

javascript - 调整窗口大小时如何保持固定位置导航静态定位

javascript - 尝试从json获取数据

javascript - 将类别轴放置在最小列下方

javascript - 声明一个新函数还是立即调用它?

javascript - 如何有效地搜索字符串中出现的单词?

javascript - Meteor 插入方法回调应该执行异步

jquery - 如何在没有 jquery UI 的情况下制作可拖动的背景?

html - 如何固定密码输入字段的大小?

javascript - 修复了导航栏淡入/淡出问题

html - 从 URL 使用 HTML 中的 .svg 文件?