如何解決JS中雙擊和單擊事件沖突的問題

這篇文章主要為大家展示了“如何解決JS中雙擊和單擊事件沖突的問題”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“如何解決JS中雙擊和單擊事件沖突的問題”這篇文章吧。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、靜海網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、靜海網(wǎng)絡(luò)營銷、靜海企業(yè)策劃、靜海品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供靜海建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:muchs.cn

在JS中代碼中同一功能塊中通常同時會用到單擊、雙擊事件,但通常會遇到一個問題,就是在雙擊的時候即執(zhí)行了一次雙擊事件,而且還執(zhí)行了兩次單擊事件。此類沖突在ZTree、DHTMLX中經(jīng)常遇到。

想要解決兩個事件沖突,需要對單擊事件進行延時,如果在此延時中又監(jiān)測到單擊事件,那么認為此兩次單擊屬于一個雙擊事件,則只執(zhí)行雙擊事件,并第一時間將延時定時器清理,以防止第二次單擊生效。

具體代碼如下:

var clickFlag = null;//是否點擊標識(定時器編號)
function doOnClick(...) {
  if(clickFlag) {//取消上次延時未執(zhí)行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  clickFlag = setTimeout(function() {
    // click 事件的處理
  }, 300);//延時300毫秒執(zhí)行
}

function doOnDblClick(...) {
  if(clickFlag) {//取消上次延時未執(zhí)行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  // dblclick 事件的處理
}

以上是“如何解決JS中雙擊和單擊事件沖突的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標題名稱:如何解決JS中雙擊和單擊事件沖突的問題
當前地址:http://muchs.cn/article2/ghiooc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)頁設(shè)計公司品牌網(wǎng)站建設(shè)、網(wǎng)站營銷軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計