当前位置: 首页 > 面试题库 >

如何区分单击事件和双击事件?

姜磊
2023-03-14
问题内容

我有一个id为id的按钮"my_id"。我将此元素附加了两个jQuery事件

1。

$("#my_id").click(function() { 
    alert('single click');
});

2。

$("#my_id").dblclick(function() {
    alert('double click');
});

但是每次它给我 single click


问题答案:

您需要使用超时来检查第一次点击后是否还有另一次点击。

这是窍门:

// Author:  Jacek Becela
// Source:  http://gist.github.com/399624
// License: MIT

jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
  return this.each(function(){
    var clicks = 0, self = this;
    jQuery(this).click(function(event){
      clicks++;
      if (clicks == 1) {
        setTimeout(function(){
          if(clicks == 1) {
            single_click_callback.call(self, event);
          } else {
            double_click_callback.call(self, event);
          }
          clicks = 0;
        }, timeout || 300);
      }
    });
  });
}

用法:

$("button").single_double_click(function () {
  alert("Try double-clicking me!")
}, function () {
  alert("Double click detected, I'm hiding")
  $(this).hide()
})



<button>Click Me!</button>


 类似资料:
  • 问题内容: 我试图区分OnClick函数中的左键单击和右键单击。但, 证明e 。对于合成事件未定义。如何在此处区分左键和右键? 问题答案: 您也可以这样做。同时拥有onClick和onContextMenu处理程序 您可以根据其他答案的建议进行检查,也可以进行检查。(此外,如果右键单击,请阻止默认设置。) 使用 使用 这是一个演示 http://jsbin.com/seyeliv/edit?htm

  • 问题内容: 我在论坛上搜索并看到以下代码: 但是代码运行不正确(有时会打印出“并且单击一次!” 2次。应该打印出“并且双击!”)。有人可以告诉我为什么吗?还是可以给我一些更好的方法呢?谢谢! 问题答案: 有时它会打印出“并且只需单击一次!” 2次 。它应该打印出“,这是双击!”)。 那是正常的。仅当您在指定的时间间隔内单击两次时,才会发生双击。因此,有时如果单击速度不够快,您将连续获得两次单击。

  • 如何为一个组件同时绑定单击和双击事件

  • 我正在使用android Studio模板中的android导航抽屉导航菜单。如何根据id导航到不同的活动。 我知道我错过了什么,但我找不到解决办法。有人能帮我吗?

  • 本文向大家介绍Android 自定义View实现单击和双击事件的方法,包括了Android 自定义View实现单击和双击事件的方法的使用技巧和注意事项,需要的朋友参考一下 自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Ha

  • 问题内容: 我有一个。 如何在双击事件中做出反应? 问题答案: