javascript同一个元素同时绑定click和dblclick事件(同时单击和双击事件)

原则上尽量不要在同一DOM元素上绑定单击和双击事件,不可避免会相互影响。

我碰到的现象是:在同一DOM元素上绑定了click和dblclick(用的jquery),在firefox下,双击事件有时候会触发,有时候不行,猜想可能是单击事件的影响造成(在IE下面双击事件能触发)。百度了一些内容:IE对双击事件的处理和其它浏览器有些不同

IE下双击触发事件:

mousedown, mouseup, click, mouseup, dblclick

而在ff下:

mousedown, mouseup, click, mousedown, mouseup, click, dblclick


无奈之下,只有在用户单击的时候,记住一个状态,给一个定时器重置这个状态,如果在定时器重置状态之前又有click触发,就调用 双击事件处理函数

clickInterval = 600;

clicked = false;

clearTimeout(clickTimer);

clickTimer = setTimeout(function(){
//alert("clickTime:" + clickTime);
clicked = false;
//clickTime = 0;
}, clickInterval);

if (clicked)

//dblclicked event

clicked = true;


上面的代码在IE下面会有问题,因为IE在双击时,只触发了一次clicked(点击3次,IE下会有双击的效果),无奈之下,只有判断浏览器类型,然后绑定一个双击事件了。判断IE浏览器用jquery的$.browser.msie(返回true,false)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值