2个回答

1

实际上,您提供的代码已经触发了touchstart事件。

在这个fiddlehttp://jsfiddle.net/mssavai/o8cvqL0L/34/中,我修改了您原始代码以显示#yellow周围的边框。您会发现,触摸边框区域会生成一个touchstart事件。

然而,靠近边缘的触摸有时会触发点击事件,我认为这是您所面临的问题。从我的观察(在Google Chrome-Android上),如果触摸开始于注册区域外部,然后随着触摸施加更大的压力而增长到覆盖该区域的一部分,则会发生这种情况。


1
嗨!是的,你说得对,这与触摸区域有关,但我已经在Chrome模拟器中进行了测试,只需起始触摸半径就足以触发点击。 - Sadako
1
问题是:这种行为有没有被记录在某个地方?我该如何防止这种情况发生。我不希望在轻触时触发点击事件。我已经在问题中添加了一些信息。 - Sadako

-3

试一下这个,我认为这将解决你的问题。

$('#yellow').on('touchstart mousedown', function(e) {
    e.preventDefault();
    alert('touch');

});

$('#yellow').on('click', function(e) {
    e.preventDefault();
    alert('click');
});

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