我有一段 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/