gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:10:27 25 4
gpt4 key购买 nike

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

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

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

根据单击的内容,它们的执行操作略有不同。问题是,单击 LI 也是单击 HTML,因此当我单击 LI 时,LI 单击事件和 HTML 单击事件都会触发。

如果我单击 LI 以外的任何位置,我只会根据需要获得 HTML 单击。

有没有什么办法基本上可以说“如果用户单击了 LI 元素,则执行此操作。否则,如果用户单击 LI 以外的其他任何位置,则执行此操作”?

最佳答案

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

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

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

进一步阅读:

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

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

关于javascript - jQuery bind() - 如果 LI 单击事件触发,则防止触发 HTML 单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com