显示的示例代码 here .这行得通,但我想知道是否有另一种方法可以做到这一点,而不必创建一个事件处理程序,其唯一目的是防止冒泡在其上执行的消息,直至其祖先。
基本上我想要代码做的是:凡是 span
标签 不是的地方,然后调用 p
的事件处理程序> 标签。另一种表达方式:凡是 span
标记 的地方,都不要调用 p
标记的事件处理程序。
我尝试做 this ,但它没有用。当点击 span 标签时它仍然冒泡,这是我想要防止的
最佳答案
$("div").on('click', "p", function(e){
if(e.target.nodeName != 'SPAN') {
alert("p was clicked");
}
});
检查在您的第一个事件处理程序中单击的元素的类型。仅当它是 P 元素时才显示警报。
编辑:关于 jQuery 传递给事件处理程序的参数的更多信息:e.currentTarget
指的是您放置了事件监听器的元素(在此case 你的 p 标签)和 e.target
指的是你实际点击的元素(当你点击 span 时指的是 span 元素,当你点击 p 时指的是 p 元素).
关于javascript - 其他阻止内部事件处理程序冒泡的方法,jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29219272/