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

How to prevent assigning click event on child items?

本文关键字:分配 单击 事件 子项目 何防止      更新时间:2023-09-26

我为.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