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

Como puede ver, el "Margen cambia cuando alguien hace clic en un botón. ¿Qué sucede si quiero que suceda solo en el sitio carga cada 10 segundos?jQuery ¿cómo hacer que el evento ocurra cada x segundos?

Gracias.

Respuesta

10

Uso setInterval para configurar un evento programado:

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

Asigna 'setInterval()' a una variable, por lo que puedes detenerla con 'clearInterval()' si quieres. ==> 'var timer = setInterval (...);', luego para detener: '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(); 

}); 
Cuestiones relacionadas