防止子元素的点击事件触发父元素的双击事件。

3

这里是一个JSFiddle示例,展示了我遇到的问题。

理想情况下,无论点击速度或频率如何,双击事件都不应该在按钮被单击时触发。

我尝试过阻止传播,但似乎无法使任何东西工作。

以下代码:

 if(event.target == this)

这段代码在JSFiddle上可以工作,但由于我试图在自定义 widget 中使用此代码,所以 this 关键字不是指被点击的项,而是指 widget 本身。

如何阻止单击事件触发父级双击事件?

编辑

解决方案 是由jo8691提供的。我的问题是停止了单击事件的传播,而不是双击事件。我学到了新东西! (停止单击事件不会停止双击事件,它们比看起来要更分离)。


http://jsfiddle.net/C6gh7/4/ - .stopPropagation()似乎有效。 - Zoltan Toth
@ZoltanToth -- 如果我点击得够快,就不会有问题 :) - tymeJV
Zoltan,这个不行。你在错误的监听器上放置了.stopPropagation。jo8691给出了正确的答案。谢谢! - Hanna
1个回答

5

添加:

$('button').on("dblclick", function(event){
    event.stopPropagation();
});

jsFiddle example


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接