2010-09-25 133 views
5
$("#clickMe").click(         
    function(){ 
      if (i == 1) {    
       i = i+1 
       $("#div p").css("left", "-" + width * i + "px"); 
      } 
}); 

正如你所看到的變化-margin當有人點擊一個按鈕。如果我希望每10秒鐘只發生一次站點負載,該怎麼辦?jQuery如何讓事件每隔x秒發生一次?

謝謝。

回答

10

使用setInterval建立定時事件:

setInterval(
    function(){ 
      if (i == 1) {    
       i = i+1 
       $("#div p").css("left", "-" + width * i + "px"); 
      } 
    }, 
    10000 /* 10000 ms = 10 sec */ 
); 
+3

將'setInterval()'指定給一個變量,所以如果需要,可以用'clearInterval()'來停止它。 ==>'var timer = setInterval(...);',然後停止:'clearInterval(timer);' – 2010-09-25 00:42:45

0
var cancel_margin_change = false; 
$(function() { 

    var i = 1, width = 10, xtime = 10000, 
     margin_change = function() { 

      if (i == 1) 
      $("#div p").css("left", "-" + (width * (++i)) + "px"); 

      if (!cancel_margin_change) 
      setTimeout(margin_change, xtime); 
     }; 

    margin_change(); 

});