我遇到一个问题,链接元素(A 标记)或任何其他 DOM 元素上的 click
事件未调用处理程序/回调函数。
无论我得到层次结构中的哪一个父级,但没有得到此事件,都没有关系。
不存在 Event.stopImmediatePropagation 或 Event.stopPropagation。
最佳答案
为什么是 Chrome 56,他们改变了一些事件并停止将鼠标事件转换为触摸事件。
要解决此问题,只需在之前使用过 click
的移动设备上使用 touchstart
事件即可。或者,如果您只需点击
,您可以执行以下操作:
Element.addEventListener("click", callback);
Element.addEventListener("touchstart", callback);
function callback(event) {
Element.removeEventListener("click", callback);
Element.removeEventListener("touchstart", callback);
// do something
}
现在,要进行模拟点击,您需要检查“touchstart”和“touchend”之间的 300ms 传递时间。如果较少,您可以点击一下。
注意:“click”事件发生在“touchstart”之后
关于google-chrome - Chrome 56 移动版 addEventListener "click"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42123283/