好吧,我感觉我疯了……
我正在查看 iOs 6.0 上的 Mobile Safari。我似乎无法确定点击元素何时会触发点击的任何押韵或理由。在许多情况下,似乎我需要点击一次来触发悬停,然后再次触发点击。
Mobile Safari 规范说: “ ......由单指和两指手势生成的事件流取决于所选元素是否可点击或可滚动......可点击元素是链接、表单元素、图像地图区域或任何其他带有 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 上点击元素。 什么都没发生
但我离题了。对我来说重要的是找出以下问题:
究竟是什么标准决定了点击一个元素何时会在第一次点击时触发一个“点击”事件? 与第一次点击时触发“悬停”事件和第二次点击时触发“点击”事件相反。
在我的测试中,锚元素是我可以在第一次点击时触发点击的唯一元素,然后,只是偶尔且不一致。
这就是我开始感到疯狂的地方。我在互联网上进行了广泛搜索,几乎没有发现任何关于这个问题的信息。只有我吗?!有人知道在哪里讨论过两次点击的标准和/或处理这些限制的方法吗?
我很高兴回答问题/请求。
谢谢!