添加事件的代碼比較簡單,有兩種方法:
- $("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);
});
