Javascript 设置单击事件运行10秒的间隔
我有一段JavaScript,当用户单击页面上的某个元素时,我希望每100毫秒运行一次,持续10秒 我让它在一定程度上工作,但如果用户第二次单击该元素,它将不再运行 任何帮助都将不胜感激 代码Javascript 设置单击事件运行10秒的间隔,javascript,time,Javascript,Time,我有一段JavaScript,当用户单击页面上的某个元素时,我希望每100毫秒运行一次,持续10秒 我让它在一定程度上工作,但如果用户第二次单击该元素,它将不再运行 任何帮助都将不胜感激 代码 jQuery('.pager .pages li, .pager .pages li a').click(function(){ var safariClearFixTimer = setInterval(safariClearFix ,100); setTimeout(function(
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');
}
});
[编辑]
顺便说一句,你也应该清除点击超时,否则你可能会有一些意想不到的行为。
[edit2]
在上面的代码中添加了clearTimeout您需要在启动间隔时禁用该按钮,并在清除间隔时再次启用该按钮。试试这个
对于您的应用程序,最好更改按钮的css,以便用户知道它已被禁用。我无法使用setInterval方法,因此我使用另一种方法解决了它 我使用javaScript DOMSubtreeModified事件将修改时的更改应用于DOM
jQuery('body.catalog-category-view .main.container .col-main, body.catalogsearch-result-index .main.container .col-main').on("DOMSubtreeModified",function(){
jQuery('.itemgrid-3cols .item').css('cssText', 'clear: none !important;');
});
您是否也尝试过清除超时?(我编辑了我的帖子)