javascript - setInterval 点击事件运行 10 秒

标签 javascript time

我有一段 JavaScript,当用户单击页面上的元素时,我希望每 100 毫秒运行一次,持续 10 秒。

我让它在一定程度上工作,但如果用户第二次单击该元素,它就不再运行。

任何帮助将不胜感激。

代码

jQuery('.pager .pages li, .pager .pages li a').click(function(){
    var safariClearFixTimer = setInterval(safariClearFix ,100);
    setTimeout(function( ) { clearInterval( safariClearFixTimer ); }, 10000);
    function safariClearFix(){
        jQuery('.itemgrid-3cols .item').css('cssText', 'clear: none !important;'); 
        console.log('COUNT');
    }
}); 

最佳答案

也许在设置之前清除每次单击元素时的间隔? 像这样的事情:

var safariClearFixTimer;
var timer;
jQuery('.pager .pages li, .pager .pages li a').click(function(){
    clearInterval( safariClearFixTimer );
    clearTimeout( timer );
    safariClearFixTimer = setInterval(safariClearFix ,100);
    timer = setTimeout(function( ) { clearInterval( safariClearFixTimer ); }, 10000);
    function safariClearFix(){
        jQuery('.itemgrid-3cols .item').css('cssText', 'clear: none !important;'); 
        console.log('COUNT');
    }
}); 

[编辑] 顺便说一句,您还应该清除点击超时,否则您可能会出现一些意外的行为。 [编辑2] 在上面的代码中添加了clearTimeout

关于javascript - setInterval 点击事件运行 10 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27131833/

相关文章:

javascript - 如何判断方形阅读器是否加密

javascript - 以编程方式添加 JavaScript

javascript - 使用 three.js 访问右键

javascript - 为什么 promise 无法捕获 setTimeout 抛出的错误?

javascript - setInterval 改变 Action 下的速度

javascript - JavaScript 中的属性名称

c# - dotNet(或 C#)中是否考虑了闰秒?

r - 以年和月为单位计算年龄和融化数据

php - 英语到时间

Javascript:如何获取window.requestAnimationFrame之间的时间差