0

我已经设置了一个 jsfiddle 来显示我遇到的问题。http://jsfiddle.net/fy8tK/3/

简单来说,我有一个同时具有单击和双击触发器的子元素。它们都click使用超时在事件内处理。

父项也有一个双击事件。但是,我使用它来定义它dblclickevent.stopPropagation()不起作用,我想知道是不是因为它们是不同的事件类型?

dblclick基本上,如果我们实际单击子元素,我需要不触发父事件。

4

1 回答 1

1
$('.parent').bind('dblclick', function (e) {
    if (e.target !== 'div.child') {
        alert('double click parent');
    }
});
$('.child').bind('click', function(e) {
    alert('single click child');
});

JSFIDDLE

来自'dblclick' 的 jQuery 文档不建议将处理程序绑定到同一元素的 click 和 dblclick 事件。触发的事件顺序因浏览器而异,有些在 dblclick 之前接收两个点击事件,而另一些只接收一个。双击灵敏度(被检测为双击的两次单击之间的最长时间)可能因操作系统和浏览器而异,并且通常是用户可配置的。

你也可以参考这个 SO question

于 2013-07-21T23:49:00.090 回答