2010-09-25 131 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(); 

});