jQuery bind() - 如果LI单击事件触发,则阻止触发HTML单击事件

时间:2016-04-14 18:40:21

标签: javascript jquery

在我的js中,我有两个点击绑定:

$('#menu > li').bind('click', function () {...});

$('html').bind('click', function () {...});

根据点击的内容,它们各自略有不同。问题是,点击LI也是点击HTML,所以当我点击LI时,LI点击和HTML点击事件都会激活。

如果我点击LI以外的任何地方,我只会根据需要点击HTML。

有没有办法说,基本上,“如果用户点击LI元素,请执行此操作。否则,如果用户点击LI以外的任何其他地方,那么”?< / p>

1 个答案:

答案 0 :(得分:1)

您需要做的就是防止事件冒泡。使用jQuery就像在e.stopPropagation()事件处理程序中添加li一样简单。

因此,您更新的代码如下所示:

$('#menu > li').bind('click', function (e) {
    e.stopPropagation();
    ...
});

进一步阅读:

https://api.jquery.com/event.stoppropagation/

http://www.quirksmode.org/js/events_order.html