【问题标题】:JQuery click event triggered on Chrome and FF device touch emulation?在 Chrome 和 FF 设备触摸仿真上触发的 JQuery 点击事件?
【发布时间】:2015-01-24 04:31:31
【问题描述】:

在我的 Rails 站点中,我有一个元素,当鼠标单击时(例如在桌面上),我想充当链接,但在触摸屏设备上触摸时不想充当链接(因为还有悬停行为)。

我的理解是 JQuery .click 事件不应在触摸时触发。

我设置点击处理程序的咖啡脚本很简单

...
    $(this).click ->
      location.href = url
...

(其中“this”是有问题的元素)

我知道此代码有效,因为单击操作可与鼠标一起使用。为了确保它不会在触摸设备上触发,我使用 Chrome 开发者工具中的设备模拟来模拟触摸。但是,当我这样做时,该方法仍然会触发并遵循链接。

这是 Chrome 仿真的问题还是我的代码的问题?我想知道它在真正的触控设备上是否会这样。

编辑:Firefox 也会发生同样的事情,所以我认为这是我的代码...

【问题讨论】:

    标签: javascript jquery coffeescript click touch


    【解决方案1】:

    我意识到触摸事件也会触发点击事件,稍后在事件链中。为了获得我想要的功能,我保留了.click 处理程序,但添加了一个.touchstart 处理程序,我在其中调用了event.preventDefault() 以短路事件链的其余部分。这样,.click 处理程序会在鼠标点击时触发,但不会在触摸时触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      相关资源
      最近更新 更多