为什么/何时需要点击两次触发点击iOS

好吧,我觉得我很疯狂

我正在看iis 6.0上的Mobile Safari.在点击某个元素时,我似乎无法建立任何韵律或理由触发点击.在许多情况下,似乎我需要点击一次来触发一个悬停,然后再次触发一次点击.

Mobile Safari spec说:“…单手指和双指手势产生的事件的流程是有条件的,取决于所选元素是否可点击或可滚动…可点击的元素是链接,表单元素,图像地图区域或任何其他元素与mousemove,mousedown,mouseup或onclick处理程序…由于这些差异,您可能需要将一些元素更改为可点击的元素…“

它继续建议开发人员“…添加一个虚拟的onclick处理程序,onclick =”void(0)“,以便iOS上的Safari将span元素识别为可点击的元素.

但是,我的测试显示这些陈述是错误的.

JsFiddle:http://jsfiddle.net/6Ymcy/1/

HTML

<div id="plain-div" onclick="void(0)">Plain Div</div>

JS

document.getElementById('plain-div').addEventListener('click',function() {
   alert('click'); 
});

尝试点击iPad上的元素.什么都没发生

但我离题对我来说重要的是找出以下问题:

点击某个元素时确定的标准究竟是什么,会在第一次点击时触发“点击”事件?而不是在第一次点击上触发“悬停”事件,而在第二次点击上点击“点击”事件.

在我的测试中,锚点元素是我可以点击第一次点击的唯一元素,然后只是偶尔和不一致.

这里是我开始感到疯狂的地方.我在互联网上广泛搜索,发现没有关于这个问题.只是我吗?有没有人知道有关两个水龙头的标准的讨论,还是处理这些限制的方法?

我很乐意回答问题/要求.

谢谢!

解决方法

我有同样的问题.最简单的解决方案是不要绑定iOS上的“mouseenter”事件(或任何支持触摸的目标平台).如果没有限制,则悬停事件将不会被触发,点击会在第一次点击时触发.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...