簡體   English   中英

JavaScript - 在指定的時間段內偵聽多個事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM