5

我要停止从孩子到父母的事件传播,我有一堆li包含a.

$('li a[rel=close]').live('click', function(e){
    e.stopPropagation();
    e.preventDefault();
})

但它不会停止活动。有什么建议吗?

4

3 回答 3

3

stopPropagation有问题live,来自 jQuery stopPropagation文档 -

由于 .live() 方法在事件传播到文档顶部后处理事件,因此无法停止实时事件的传播

正如 Rob W 所说,您的代码可以正常工作bind,这是一个演示 - http://jsfiddle.net/TmKyT/

于 2011-10-08T10:14:54.027 回答
1

使用.bind而不是.live. 该live事件在传播树的末尾触发。live仅比bind您还想为稍后创建的元素绑定事件侦听器时更有用。

于 2011-10-08T10:15:18.440 回答
0

也许尝试使用委托?

$('ul.parent').delegate('li a[rel=close]', 'click', function( event ) {

}
于 2011-10-08T10:18:22.457 回答