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