如何防止在子项目上分配单击事件
How to prevent assigning click event on child items?
我为.menu li
创建了一个点击事件,其中ul
使用$(".menu li:has(ul)")
。它可以工作,但它也将相同的事件分配给.menu li ul li
。我尝试使用e.stopPropagation();
, e.PreventDefault();
和return false;
内部功能,但根本不起作用。如何预防呢?
这是显示实际问题的小提琴
我使用的jQuery:
$(".menu li:has(ul)").click(function() {
console.log('has ul');
if($(this).children("ul").is(':visible')){
$(this).children("ul").slideUp();
}else{
$(this).children("ul").slideDown();
}
});
试试这个:
$('.menu a').click(function() {
var next=$(this).next();
if(next.prop('tagName')=='UL') {
if(next.is(':visible')){
next.slideUp();
}else{
next.slideDown();
}
}
});
它现在工作了,你需要在子UL上添加返回false
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 删除按钮并在单击时进行分配
- 分配和删除单击事件
- 如何在用户单击提交按钮时为变量分配任意值
- 如何创建<p>标记,并在我单击它时将其分配给一个var
- 使用AngularJS从$rootScope分配功能以单击事件
- jQuery:使用 var 快捷方式分配数据以及如何链接功能以在加载和单击时运行
- '如果单击按钮'在已分配给某个功能的按钮上
- 单击导航选项卡时分配jQuery功能
- 分配单击的元素's ID作为另一个元素的类名
- 如何防止在子项目上分配单击事件
- 文本分配给文本框,单击超链接
- 如何在动态表中为每行分配不同的单击事件
- 为表列分配ID's,并添加单击功能
- 为每个按钮分配相同的功能,并在单击任何按钮时更改功能参数
- 根据单击的提交按钮分配不同的点击次数
- 当我们单击“为标签分配”复选框时,Chrome 和 IE 不会按时触发更改事件
- 如何在单击时获得目标的名称并将其值分配给另一个变量
- 解析HTML页面并分配value到一个PHP变量的按钮单击