如何防止在子项目上分配点击事件?

时间:2013-05-19 09:52:26

标签: javascript jquery

我使用.menu liul制作了$(".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();
    }
});

2 个答案:

答案 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