jQuery - 同时添加click和dblclick事件

本文介绍了一种解决双击事件与单击事件冲突的方法。通过使用定时器来区分双击和单击操作,确保了双击事件能正确触发而不被单击事件覆盖。这种方法适用于需要同时监听单击和双击事件的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加事件的代码比较简单,有两种方法:

  • $("abc").bind({"click":fn,"dblclick":fn});
  • $("abc").click(fn).dblclick(fn)

目前的问题是无论双击或者单击都只执行单击的function,为什么呢?
下面我们说一下双击的机制:

双击(dblclick)的流程是:mousedown,mouseout,click,mousedown,mouseout,click,dblclick;

要想实现双击我们必须屏蔽这两次click,因此我们在click里面设置一个定时器,延迟执行function。
完整代码如下:

//绑定点击和双击事件
                    var _time = null;
                    $(this).find("tr").dblclick(function(e){
                        clearTimeout(_time);
                        console.log("dblclick");
                        //真正双击代码

                    }).click(function(e){
                        clearTimeout(_time);
                        _time = setTimeout(function(){
                            console.log("click");
                            //单击事件在这里

                        }, 300);
                    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值