Javascript 设置单击事件运行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(

我有一段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');
    }
}); 
[编辑] 顺便说一句,你也应该清除点击超时,否则你可能会有一些意想不到的行为。 [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;');
    });

您是否也尝试过清除超时?(我编辑了我的帖子)