這篇文章主要為大家展示了“如何解決JS中雙擊和單擊事件沖突的問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何解決JS中雙擊和單擊事件沖突的問題”這篇文章吧。
創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設公司,我們專注網(wǎng)站建設、做網(wǎng)站、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,友情鏈接,廣告投放平臺為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結構的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。在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中雙擊和單擊事件沖突的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。