不完美解決click和dblclick事件衝突問題

2022-02-09 08:48:42 字數 882 閱讀 8540

當某個元素,如:div,同時繫結了click事件和dblclick事件,而這兩個事件又要處理相對獨立的業務,也就是click的時候不能觸發dblclick,dblclick的時候不能觸發click。在實際測試中發現,當dblclick的時候,總會出現1次click。下文將要解決的就是這個問題。

首先我們要清楚click和dblclick的執行順序,測試過程略,下面是測試結果:

click:mousedown -- mouseup -- click

dblclick:mousedown -- mouseup -- click -- mousedown -- mouseup -- click -- dblclick

由此看來,在dblclick觸發之前,實際上是執行了2次click,而第一次的click是會遮蔽掉的(為什麼?好把,我也不知道)。

最先想到的是否可以停止事件,但發現瀏覽器並未提供相應方法,如果自己去實現難度太大,因為單擊事件所關聯的行為必須做成是可以被cancel的才行。

於是考慮用延遲,也是我唯一能想到的解決辦法,利用settimeout()來延遲完成click事件的處理,然後在需要遮蔽click的時候用cleartimeout()來停止。

var test = (function(), 300);

},dblclick: function(),

init: function());

} }})();

test.init();

click

ordblclick

文章標題裡就說了,是不完美的,因為windows下,控制面板裡是可以調滑鼠的雙擊速度的(其他系統不清楚),所以我設定系統設定的雙擊速度較慢,則上面那個demo就不生效了。所以300毫秒只是乙個大概的。

也許不完美

猶豫了這麼久,終於把三方寄出去了,花了24塊錢。回到宿舍,心裡卻高興不起來。不知道為什麼,我突然覺得身邊都是嘲笑的聲音,心情一下子跌落到谷底。我不禁對自己冷笑。我真的不知道我的選擇是否正確?特別是看到dd不太情願去hz的那個眼神,讓我一時間不知所措了。從開始找工作那一刻開始,我就一直在糾結。我也曾經...

不完美的軟體鎖

安卓安全小分隊 在研究這一功能時,有自己的話要說!一 目前安全軟體的實現方式 在 並且大家可以想到,重複不斷的呼叫系統函式來查詢,多多少少都消耗了系統資源,如果因為這個功能導致ipc等待或者系統耗電嚴重可就得不償失了。還是比較人性化的,在螢幕關閉的時候,就不會查詢了。以此來減少系統開銷。二 我們的想...

打造不完美的超級帳號

能夠實現在 mmc 介面 user 裡面 用工具檢查的時候 檢查到的第一次建立使用的使用者名稱 查不到隱藏的使用者名稱 有極大的危險性 用此方法改造登錄檔 造成的危害 本人概不負責 假設肉雞上已經存在 administrator tesinter user 將tesinter user 改名為tem...