0

如何使用按钮激活/触发/触发 setInterval?如果未单击该按钮,如何使其在 3 秒后自动触发,但如果我单击该按钮,它将在 0.1 秒时触发并重新启动 evrything。请帮帮我

$('button').click(function(){
    setInterval(function(){
        updateStats("updateStats");
    }, 100);
});  

else 

setInterval(function(){
    updateStats("updateStats");
}, 3000);

编辑

仅每次单击按钮 100 毫秒,如果未单击,则它最常在 3000 毫秒内自动执行,除非您单击它

部分 :

function updateStats(stat)
{



    var stat = ["GAME","USERS"];

    var url = "NET.php";

   $.each(stat, function(i, key){
       $.post(url, {stats: key}, function(data) { // stats to stat


          $("#" + key).html(data);  




                    $('.s').emoticonize({
                        //delay: 800,
                        //animate: false
                    });


       });


    });


} 
4

5 回答 5

2

如果您单击按钮,它将在 3000 之后触发,它将在 100 之后触发

var x ;

// call timer after 3000
callTimer(3000);

// call timer after 100 if cicked
$('button').click(function(){
     clearInterval(x);
     callTimer(100);
 });  


 function callTimer(time){
   x = setInterval(function(){
        updateStats("updateStats");
        }, time);
  }

根据您的要求更新

var x ;
var y ;

// call timer after 3000
callTimer(3000);

// call timer after 100 if cicked
$('button').click(function(){
     y = setInterval(function(){
        updateStats("updateStats");
        clearInterval(y);
        }, 100);
    callTimer(3000);
});  

 function callTimer(time){
   clearInterval(x);
   x = setInterval(function(){
        updateStats("updateStats");
      }, time);
 }

于 2012-05-28T12:36:23.583 回答
1
var inter = setInterval(function(){
    updateStats("updateStats");
}, 3000);

$('button').mousedown(function() {
    clearInterval(inter);
    inter = setInterval(function(){
        updateStats("updateStats");
    }, 100);
});
$('button').mouseup(function() {
      clearInterval(inter);
      inter = setInterval(function(){
        updateStats("updateStats");
    }, 3000);

});
于 2012-05-28T12:38:10.330 回答
1

将其保存在全局变量中以清除单击时的超时引用:

var tid = setTimeout(function(){
    updateStats("updateStats");
}, 3000);

$('button').click(function(){
    clearTimeout(tid);
    setInterval(function(){
        updateStats("updateStats");
    }, 100);
});
于 2012-05-28T12:33:42.063 回答
1
 var interval;
 $(document).ready(function(){
 interval = setInterval(function(){
updateStats("updateStats");
}, 3000);

});

$('button').click(function(){ clearInterval(interval); setInterval(function(){ updateStats("updateStats"); }, 100);});

于 2012-05-28T12:42:00.537 回答
1

在页面加载调用 setInterval 以在 3 秒后触发。

单击按钮时,在 100 毫秒内调用 setInterval,并清除默认间隔。

$('button').click(function(){    
setInterval(function(){
  updateStats("updateStats");    
  clearInterval(defaultTimer);
}, 100);    
});      
var defaultTimer = setInterval(function(){
  updateStats("updateStats");
}, 3000);

如果您不想重复此操作,请使用 setTimeout 而不是 setInterval。

于 2012-05-28T12:34:23.877 回答