jQuery - 同时添加click和dblclick事件


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

  • $("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);
                    });


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM