我正在创建一个Web应用程序,我想点击一个元素并在一个长按事件处理程序中处理单击。我在Safari测试。以下在我的Mac上的Safari中可以正常工作,但在iOS中则不行:
<html>
<head>
<script>
window.addEventListener("click",function (event) {
alert('hi');
});
</script>
</head>
<body>
<div style="width: 100%; height: 100%; background: black;">
</div>
</body>
</html>
为什么这在Safari的OSX版本中有效,但在iOS中无效?
答案 0 :(得分:1)
此代码应该跨浏览器工作:
function Subscribe(event, element, func) {
if (element.addEventListener) {
element.addEventListener(event, func, false);
} else if (element.attachEvent) {
element.attachEvent("on" + event, func);
} else {
element['on' + event] = func;
}
}
function func () {
alert('hi');
}
Subscribe('click', window, func);
答案 1 :(得分:1)
尝试将事件监听器“click”更改为“click touchstart”
答案 2 :(得分:0)
我找到了一个非常简单的解决方案。我在示例代码中添加了另一个关于div元素的div(参见上面的问题)。开头的div标签是
<div onClick="">
此div标签内的所有div现在都会触发click事件。这也适用于touchstart。
答案 3 :(得分:0)
就我而言,我只需要将 window
替换为 document
:
不适用于 iOS:
window.addEventListener('click', () => {})
iOS 兼容:
document.addEventListener('click', () => {})`