jquery Event.stopPropagation()似乎不工作
问题描述:
我完全错过了这是应该做什么?我希望,如果我对一个事件调用stopPropagation(),该事件处理程序将不会被触发的祖先元素,但下面的例子不工作这种方式(在Firefox 3中至少)..jquery Event.stopPropagation()似乎不工作
<script type="text/javascript">
$("input").live("click", function(event){
console.log("input click handler called")
event.stopPropagation()
});
$("body").live("click", function(event){
console.log("body was click handler called. event.isPropagationStopped() returns: " + event.isPropagationStopped());
})
</script>
...
<body>
<input type="text" >
</body>
答
现场活动不遵循相同的事件冒泡规则。请参阅有关live event handling的文档。从上面参考
引用:
直播活动不要在传统 方式气泡,不能 停止使用stopPropagation或 stopImmediatePropagation。例如, 采取两个点击事件 - 一个绑定到“li”和另一个“li a”的情况。 如果点击发生在内部 锚点上,两个事件都将被触发。 这是因为当一个 $(“li”)。bind(“click”,fn);绑定 你实际上说“每当在LI元素上发生 点击事件 - 或LI元素内 - 触发此 点击事件。”要进一步停止 处理现场活动,fn必须 返回false。
太棒了。非常感谢澄清。 – morgancodes 2009-07-14 15:31:19