gpt4 book ai didi

jQuery 事件 stopPropagation 不适用于自定义事件

转载 作者:行者123 更新时间:2023-12-01 02:42:19 24 4
gpt4 key购买 nike

<!DOCTYPE html>
<html>

<head>

<script src="jquery-2.1.1.min.js" type="text/javascript"></script>

</head>

<body>

<div id="outer">
<div id="inner">
</div>
</div>

<script type="text/javascript">

$("#outer").on("myevent", function(event) {
alert(event.target.id);
event.stopPropagation();
return false;
});

$("div").trigger("myevent");

</script>

</body>

</html>

在上面的代码中,我期望事件 myeventouter 处理一次分区但我看到两个警报:outer然后inner 。为什么stopPropagation在这里不起作用,如何防止将自定义事件传播给 child ?

编辑:我想全局触发事件,例如 $("div").trigger("myevent");但我只想在我订阅的地方处理它。

最佳答案

而不是使用 event.stopPropagation()$('#outer').on('myevent') ,您需要在每个 div 上使用它单独处理程序中的元素:

$("#outer").on("myevent", function(event) { 
console.log(event.target.id);
return false;
});
$('div').on('myevent', function(event) { // or $('*').on('myevent', ...
event.stopPropagation();
});

$("div").trigger("myevent"); // only logs 'outer'

http://jsfiddle.net/mblase75/z7NQy/

关于jQuery 事件 stopPropagation 不适用于自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24654180/

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