阻止孩子在hammer.js中触发父事件

时间:2014-12-20 14:02:09

标签: javascript javascript-events hammer.js

将锤子事件绑定到元素时,该事件也由其子元素触发。使用stopPropagation来防止事件冒泡似乎不起作用。

HTML:

<div id="parent">
    <div id="child"></div>
</div>

JS:

var hammertime = new Hammer(document.getElementById('parent'));

hammertime.on('tap', function(e) {
    e.srcEvent.stopPropagation();
    alert('Clicked on ' + e.target.id);
});

例如,请参阅JSFiddle:http://jsfiddle.net/qqvyqzgh/3/

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您可以检查事件的目标是否为父元素。

var element = document.getElementById('parent');
var hammertime = new Hammer(element);

hammertime.on('tap', function (e) {
    if(e.target === element) {
        alert('Clicked on ' + e.target.id);
    }
});

此处your updated fiddle