首頁  >  文章  >  web前端  >  JavaScript學習筆記(6) 透過延遲觸發使onDbClick時不觸發onClick事件

JavaScript學習筆記(6) 透過延遲觸發使onDbClick時不觸發onClick事件

黄舟
黄舟原創
2016-12-19 17:36:241690瀏覽

在預設的情況下,雙擊事件時是要觸發點擊事件的,但是這種情況有時卻是我們不想要的,那麼如何才能在雙擊的時候屏蔽單擊事件的觸發呢?網路上流傳一種延遲執行的方法,大致思路如下:
  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)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn