我使用.menu li
为ul
制作了$(".menu li:has(ul)")
点击事件。它有效,但它也将同一事件分配给.menu li ul li
。我尝试在函数内部使用e.stopPropagation();
,e.PreventDefault();
和return false;
,但这根本不起作用。如何防止?
Here's the fiddle显示实际问题。
我使用的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();
}
});
答案 0 :(得分:1)
请改为尝试:
$('.menu a').click(function() {
var next=$(this).next();
if(next.prop('tagName')=='UL') {
if(next.is(':visible')){
next.slideUp();
}else{
next.slideDown();
}
}
});
答案 1 :(得分:0)
现在正在使用Fiddle你需要在子UL上添加return false