触摸事件未被解雇

时间:2016-11-15 11:13:05

标签: javascript mobile touch

我遇到了这个问题。如果您点按链接旁边的(关闭,但不在链接上),则touchend事件不会被触发,只会mouseup。如果点击链接,则会触发两个事件。

HTML:

<a id="link" href="#">link</a>

JS:

var link = document.getElementById('link');

link.addEventListener('mouseup', function() {
    console.log('mouseup');
});

link.addEventListener('touchend', function() {
    console.log('touchend');
});

jsfiddle(使用开发工具设备模式)

是否存在某些浏览器问题或规范中描述的问题?

1 个答案:

答案 0 :(得分:0)

javascript有一个方法preventDefault(),可防止在触发事件的对象上调用默认事件。

link.addEventListener('touchend', function(e) { console.log('touchend'); e.preventDefault(); });

如果仍然不起作用,您应该添加一个事件点击以捕获它以防止关注该链接。

希望有所帮助。