setInterval以按钮开始或单独启动

时间:2012-05-28 12:29:24

标签: javascript jquery

如何使用按钮激活/触发/触发setInterval?并且如果没有点击按钮,如何让它在3秒内自动点火,但是如果我点击按钮它会在0.1上点亮它 第二,重启evrything。请帮帮我们

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

else 

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

修改

只有每次点击按钮100ms,如果没有点击,那么它最多在3000ms自动执行,除非你点击它

部分:

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
                    });


       });


    });


} 

5 个答案:

答案 0 :(得分:2)

如果你点击了它将在100

之后触发的按钮,这将在3000之后触发
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);
 }

答案 1 :(得分:1)

将其保存在全局变量中以清除点击时的超时参考:

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

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

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分: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);

});

答案 4 :(得分:1)

 var interval;
 $(document).ready(function(){
 interval = setInterval(function(){
updateStats("updateStats");
}, 3000);

});

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