0

ボタンで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
                    });


       });


    });


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

クリック時にタイムアウト参照をクリアするには、グローバル変数に保存します。

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

$('button').click(function(){
    clearTimeout(tid);
    setInterval(function(){
        updateStats("updateStats");
    }, 100);
});
于 2012-05-28T12:33:42.063 に答える
1

ページの読み込み時に、setIntervalを呼び出して3秒後に起動します。

ボタンをクリックしたら、100ミリ秒でsetIntervalを呼び出し、デフォルトの間隔をクリアします。

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

これを繰り返したくない場合は、setIntervalの代わりにsetTimeoutを使用してください。

于 2012-05-28T12:34:23.877 に答える
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 に答える