[英]JavaScript - Listen for multiple events in a specified period of time
有沒有辦法在一段時間內使用JavaScript監聽HTML元素上的多個事件?
例如,我想看看用戶是否在2500毫秒內點擊一個元素5次或類似的東西。
我目前無法詳細介紹。 如果需要的話,一旦我有更多時間,我就可以提供更多細節。
我想只是一個HTML元素上的點擊事件,它會更新每次點擊的點擊次數,然后如果在指定的時間段內未達到指定的點擊次數,則會重置計時器。 我已經嘗試了一些方法來實現這一點,但他們都失敗了。
我更喜歡它是純JavaScript,但我可以使用jQuery作為最后的手段。
如果對這個問題有一個完全明顯的答案,我會提前道歉。
這與點擊頻率計算不同,因為我不太關心頻率。 我關心用戶在一段時間內點擊了幾次,然后才運行一些代碼。 我也不想使用setInterval()。 這兩個問題肯定是相關的,但我不會說它們是重復的。
此方法不需要任何Jquery或使用任何計時器,這作為額外的獎勵,使其更准確。
var clicks = 0, firstClickTime = 0, clicksNeeded = 3, timeSpan = 1000; //time in milliseconds var myEvent = function(){ document.getElementById("myLabel").innerHTML="TRIGGERED!"; } document.getElementById("myButton").onclick = function(){ var dt = Date.now()-firstClickTime; if ( dt > timeSpan){ firstClickTime=Date.now(); clicks = 0; } if (++clicks >= clicksNeeded){ firstClickTime=0; clicks=0; myEvent(); } };
<button id="myButton">Test</button> <button id="reset" onclick="document.getElementById('myLabel').innerHTML='Not Triggered';clicks=0;firstClickTime=0;">Reset</button> <h1 id="myLabel">Not Triggered</h1>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.