jQuery事件传播,使用不同的事件类型时

时间:2013-07-21 23:38:35

标签: jquery event-propagation

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

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

父术语也有双击事件。我用dblclick定义了它。 event.stopPropagation()无效,我想知道是不是因为它们是不同的事件类型?

基本上,如果我们实际点击子元素,我需要激活父dblclick事件。

1 个答案:

答案 0 :(得分: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

来自jQuery Documentation on 'dblclick'不建议将处理程序绑定到同一元素的click和dblclick事件。触发的事件序列因浏览器而异,有些事件在dblclick之前接收到两个点击事件,而其他事件只接收一个事件。双击敏感度(双击检测到的点击之间的最长时间)可能因操作系统和浏览器而异,通常可由用户配置。

您还可以参考this SO question