【问题标题】:jQuery events click and touchstartjQuery 事件 click 和 touchstart
【发布时间】:2012-05-25 10:59:57
【问题描述】:

我想知道事件点击和触摸启动之间的区别?我目前所知道的是 touchstart 更适合触摸屏,但点击既适用于触摸动作,也适用于鼠标点击。我对验证这两个有点困惑,其中任何一个都会导致任何情况下的延迟?

【问题讨论】:

    标签: jquery events click touchstart


    【解决方案1】:

    点击被视为手势。它有大约 300 毫秒的延迟,因为设备正在等待查看轻按是否是双击缩放等手势的一部分。 Touchstart/end 没有延迟,因为它比手势低。

    【讨论】:

    • 请注意,您不应同时绑定两者,因为在触摸设备上使用时会触发两次。在我当前的项目中,我正在检查 touchstart 是否存在,如果存在,则分配一个 var(例如 touchAction = “touchstart”),否则分配“click”,然后我可以绑定到 clickAction,并针对两者进行了优化。
    • 感谢您的回复,您知道哪些情况对这两个动作最有用吗?我正在尝试在报告中分析它们,需要一些不同的想法。
    • 我不确定我理解你的意思。在我的代码中,我在支持它的浏览器上使用“touchstart”,然后“单击”任何其他浏览器。这能回答你的问题吗?
    • @Grezzo 这听起来不是个好主意,Grezzo。我的桌面 Chrome 30.x,没有触摸屏,实际上有window.ontouchstart,但从不触发它。此外,您可能拥有带触摸屏的设备(现代笔记本电脑),但用户仍在使用鼠标。
    • @hheimbuerger 公平点。我没有考虑过具有多个输入的设备,或者即使在不支持它们的平台上也会出现事件。
    【解决方案2】:

    是的,如果我没记错的话,点击会导致大约 200-300 毫秒的延迟。 Click 本质上是等待 touchstart 然后 touchend。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 2023-01-15
      • 2011-10-24
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多