繁体   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