在預設的情況下,雙擊事件時是要觸發點擊事件的,但是這種情況有時卻是我們不想要的,那麼如何才能在雙擊的時候屏蔽單擊事件的觸發呢?網路上流傳一種延遲執行的方法,大致思路如下:
1、宣告一個全域的計時器變數如:clickTimer
2、在代理點擊事件裡設定計時器,預設220毫秒之後觸發真正的點擊事件處理函數
3、在雙擊事件裡判斷計時器變量,如果該變量不為NULL,則說明在觸發該雙擊事件前觸發了單擊事件,取消計時器,因為真正的單擊事件處理函數在220毫秒之後才會觸發,所以在這個時候結束定時器,則真正點擊事件處理函數不會被執行。
附上程式碼:
1var timerClick=null;
2//點選事件代理
3function _onNodeClick(id){
4 3function _onNodeClick(id){
4 onNodeClick('"+id+"')",220);
6 }
7//雙擊事件處理函數
8function _onNodeDbCClick(id){ Timeout(timerClick);
11 }
12}
以上就是透過延遲觸發使onDbClick時不觸發onClick事件的內容,更多相關內容請關注PHP中文網(www.php.cn)