google-chrome - Chrome 56 移动版 addEventListener "click"不起作用

标签 google-chrome events mobile click touch

我遇到一个问题,链接元素(A 标记)或任何其他 DOM 元素上的 click 事件未调用处理程序/回调函数。

无论我得到层次结构中的哪一个父级,但没有得到此事件,都没有关系。

不存在 Event.stopImmediatePropagation 或 Event.stopPropagation。

最佳答案

为什么是 Chrome 56,他们改变了一些事件并停止将鼠标事件转换为触摸事件。

请参阅此处:https://developers.google.com/web/updates/2016/12/chrome-56-deprecations#mouse_on_android_stops_firing_touchevents

要解决此问题,只需在之前使用过 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/

相关文章:

javascript - 在 chrome 中为 console.table() 添加样式

javascript - Chrome扩展程序和主题之间的通信?

google-chrome - Chrome 开发者工具 : Mobile devices preview shows shrinked

c# - C# 事件创建的 VB 等效项

php - iPhone 手机 safari JSON 解析错误

android - 如何获取布局或其至少一个子元素是否在android中溢出

html - 旋转 Div -- 链接在 Chrome 的反面不活动

c# - .NET 中的事件排序

javascript - jQuery:如何在事件发生之前执行代码并将结果作为事件的参数?

android - ionic vs Material 设计 vs tabris,或者 vs 其他框架