stopPropagation不适用于chrome + live方法

时间:2010-11-13 02:19:50

标签: jquery google-chrome

在这两个项目中,我称之为特定功能

$('.item >li> div').click(function (e) {
$('.item .time').live('mousedown', function (e) {
     e.stopPropagation();

在歌剧中,firefox这个工作正常。在Chrome中,当我点击时间div我的功能运行两次而不是一次。 在jquerys Additional Notes中,它提到了这个

  

由于.live()方法处理   事件一旦传播到   文档的顶部,它不是   可以阻止直播传播   事件。同样,事件处理   .delegate()将始终传播到   它们所属的元素   委托;任何事件处理程序   它下面的元素已经有了   已被执行的时间   委托事件处理程序被调用。

好的,但是如何阻止我的功能被运行两次?如果我删除行stopPropagation火狐和歌剧将有同样的问题。

使用jquery 1.4.4

2 个答案:

答案 0 :(得分:2)

clickmousedown是不同的事件,停止传播一个不会以任何方式影响另一个。此外,在正常事件发生后,实时事件会触发,因此您无论如何都必须在正常事件处理程序中调用stopPropagation

答案 1 :(得分:0)

  

我作弊,只是用jquery检查过   什么浏览器,如果它的铬我   回来吧它完美无瑕的ATM。

如果它与if语句一起工作,那么如果你删除了if语句并且刚刚返回,那么它可能会起作用。