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

Come si può vedere -margin cambia quando qualcuno fa clic su un pulsante. Cosa succede se voglio che accada solo sul sito di carico ogni 10 secondi?jQuery come rendere l'evento si verifica ogni x secondi?

Grazie.

risposta

10

Usa setInterval per impostare un evento programmato:

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

Assegnare 'setInterval()' a una variabile, in modo da poterlo interrompere con 'clearInterval()' se lo si desidera. ==> 'var timer = setInterval (...);', quindi per interrompere: 'clearInterval (timer);' –

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

}); 
Problemi correlati