jquery双击事件(dblclick)时,不触发单击事件(click)

  在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。

  先看一下点击事件的执行顺序:

  单击(click):mousedown,mouseout,click;
  双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick;

  在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。

  如此这般的话,只需消灭掉多余的一次单击事件(click),这个问题就解决了。

  setTimeout 

  在jQuery的$(document).ready(function(){})里面直接开写:

//定义setTimeout执行方法var TimeFn = null;

$(‘div‘).click(function () {    // 取消上次延时未执行的方法    clearTimeout(TimeFn);    //执行延时    TimeFn = setTimeout(function(){        //do function在此处写单击事件要执行的代码    },300);});

$(‘div‘).dblclick(functin () {     // 取消上次延时未执行的方法    clearTimeout(TimeFn);    //双击事件的执行代码})

从测试结果来看,如果前后两次点击的时间在 300ms 左右的时候,还是很容易出现 click 和 dblclick 事件被“同时”调用的情况,而如果间隔的时间更短或更长,则只会有 click 或 dblclick 事件。

至此,能一定程度上避免双击(dblclick)时触发单击(click)。

时间: 2024-08-02 01:20:00

jquery双击事件(dblclick)时,不触发单击事件(click)的相关文章

JQuery如何实现双击事件时不触发单击事件,解决鼠标单双击冲突问题

在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click). 但有时候我们希望在执行双击事件的时候不去出发单击事件,那究竟该如何实现呢? 少bb 上代码 : <!DOCTYPE html> <html lang="en"> <head> <meta charset

JQuery如何实现双击事件时不触发单击事件

单击和双击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick: 在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会.也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果.而不是一次双

[转]jQuery 双击事件(dblclick)时,不触发单击事件(click)

例1: 链接:http://www.w3school.com.cn/jquery/event_dblclick.asp HTML 系列教程 浏览器脚本 服务器脚本 ASP.NET 教程 XML 系列教程 Web Services 系列教程 建站手册 jQuery 教程 jQuery 教程 jQuery 简介 jQuery 安装 jQuery 语法 jQuery 选择器 jQuery 事件 jQuery 效果 jQuery 隐藏/显示 jQuery 淡入淡出 jQuery 滑动 jQuery 动画

jQuery 双击事件(dblclick)时,不触发单击事件(click)

在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click).即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click). 先看一下点击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mous

当元素获得焦点和失去焦点时,触发 的事件。

我遇到一个问题,点击文本框时,文本框的值消失,点击文本框外时,值还原.经过一系列的过程, 解决的内容:如下: 下面内容摘取于Jquery. 当元素获得焦点时,触发 focus 事件. 可以通过鼠标点击或者键盘上的TAB导航触发.这将触发所有绑定的focus函数,注意,某些对象不支持focus方法. 当页面加载后将 id 为 'login' 的元素设置焦点: $(document).ready(function(){ $("#login").focus(); }); 使人无法使用文本框:

金蝶VB插件,单据保存时总是触发GetFocus事件

在做金蝶插件时,在保存时,总是触发GetFocus事件,让人很伤心啊 Private Sub m_BillInterface_GotFocus(ByVal sKey As String, ByVal dctData As KFO.IDictionary, ByVal curDspValue As Variant, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean) If (Row > 0 And r <> -110 And r

jquery移除、绑定、触发元素事件

unbind(type [,data]) //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn').unbind(); //移除所有 对于只需要触发一次的,随后就要立即解除绑定的情况,用one() $('#btn').one("click",function(){.......}); 触发操作:trigger() 方法触发被选元素的指定事件类型. $('#btn').trigger("clic

点击事件里面的change事件,多次触发change事件

最近做个项目,在点击按钮后弹出一个层,里面有单选按钮,选中单选按钮时就可以动态添加到对应的地方了 $(".xinz").click(function(event){ event.stopPropagation(); radioBoxChange += 1; //clickChange = "shspClick"; var radioBox=$("#radioBox"); var hsBox=$(this).siblings(".deli

双击时不运行单击事件——加延时判断

思路很简单,就是加一个延时,判断在特定时间内是否有第二个鼠标事件 [cpp] view plaincopyprint? //tqt.h #ifndef TQT_H_ #define TQT_H_ #include <QtGui> #include <QtCore> class ClickedLabel : public QLabel { Q_OBJECT private: int press; //QTimer *timer; protected: void mousePressE