【问题标题】:jQuery How to distinguish click() and dblcick() for a DIV element?jQuery 如何区分 DIV 元素的 click() 和 dblclick()?
【发布时间】:2010-08-26 13:11:02
【问题描述】:

如果我为 DIV 元素订阅 dblclick() 和 click() 并在 DIV 上双击鼠标,则 click() 处理程序在调用 dblclick() 之前首先调用。如何避免在 dblclick() 之前处理 click()?

更新: 这个问题在Prevent click event from firing when dblclick event fires 之前已经问过了。但这里也有很好的答案。

【问题讨论】:

  • 不仅由于这个问题,在同一个元素上同时单击和双击通常是糟糕的 GUI 设计,除非您希望在双击时也发生单击操作。

标签: jquery javascript-events


【解决方案1】:

试试这个:http://jsfiddle.net/DAgyC/ 实现第一次点击后超时,如果有双击则忽略第一次点击。

【讨论】:

    【解决方案2】:

    可能不是最好的方法:您可以在单击处理函数中设置超时,并在双击处理函数中清除超时。

    超时可以调用一个函数,该函数将暗示您真正希望在单击时发生什么,这样您就可以让您的 dblclick() 函数处理用户双击时发生的事情。

    【讨论】:

    • 同意,这是唯一的方法。 OP 应该注意 jQuery 文档提到将 click 和 dblclick 处理程序绑定到单个元素是不可取的。 api.jquery.com/dblclick
    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多