jquery Event.stopPropagation()似乎不起作用

mor*_*des 22 jquery events

我完全不知道应该做什么吗?我希望如果我在一个事件上调用stopPropagation(),那么该事件的处理程序将不会在祖先元素上触发,但下面的示例不是那样工作的(至少在FireFox 3中).

<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>
Run Code Online (Sandbox Code Playgroud)

tva*_*son 50

直播活动不遵循相同的事件冒泡规则.请参阅有关实时事件处理的文档.

引自上面的参考:

直播活动不会以传统方式冒泡,也无法使用stopPropagation或stopImmediatePropagation停止.例如,假设有两个点击事件 - 一个绑定到"li",另一个绑定到"li a".如果内部锚点发生咔嗒声,将触发BOTH事件.这是因为当$("li").bind("click",fn); 您实际上是在说"只要在LI元素上发生click事件 - 或者在LI元素内部 - 触发此单击事件." 要停止对直播事件的进一步处理,fn必须返回false.