Foros del Web » Programando para Internet » Javascript »

detener funcion set interval

Estas en el tema de detener funcion set interval en el foro de Javascript en Foros del Web. Hola amigos, veran en mi pagina puse un div que se recarga automaticamente cada 5 segundos con este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver ...
  #1 (permalink)  
Antiguo 03/05/2012, 18:41
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Pregunta detener funcion set interval

Hola amigos, veran en mi pagina puse un div que se recarga automaticamente cada 5 segundos con este codigo

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.      $('#banner').fadeIn(1000);
  3.      $("#banner").load("sis-rota.php");
  4.    var refreshId = setInterval(function() {
  5.       $('#banner').fadeOut(1000);
  6.       $("#banner").load('sis-rota.php?next=1');
  7.       $('#banner').fadeIn(1000);
  8.    }, 5000);
  9.    $.ajaxSetup({ cache: false });
  10. });

Pero quiero poner un botón en mi pagina que detenga o anule la funcion set interval para que cuando se pulse deje de recargarse automaticamente.

como lo hago?
  #2 (permalink)  
Antiguo 03/05/2012, 18:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: detener funcion set interval

Código Javascript:
Ver original
  1. clearInterval(refreshId);
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #3 (permalink)  
Antiguo 03/05/2012, 19:19
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: detener funcion set interval

como llamaría eso desde un link???
  #4 (permalink)  
Antiguo 03/05/2012, 19:52
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: detener funcion set interval

podrías poner la variable refreshId como global y
Código HTML:
Ver original
  1. <a onclick="javascript:clearInterval(refreshId);">texto del link</a>

o llamar a una función que se encargue de obtener refreshId
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #5 (permalink)  
Antiguo 03/05/2012, 19:58
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: detener funcion set interval

ya lo he intentado así y no funciona.
  #6 (permalink)  
Antiguo 03/05/2012, 20:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: detener funcion set interval

kalvin ...
Código HTML:
Ver original
  1. function stopInterval() {
  2.     clearInterval(refreshId); // refresh tiene que ser global
  3. }
  4.     <a onclick="stopInterval();" >click aquí</a>
  5. </body>
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #7 (permalink)  
Antiguo 03/05/2012, 20:14
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: detener funcion set interval

Asi lo tengo

Código Javascript:
Ver original
  1. function cambiarota() {
  2.         clearInterval(refreshId);
  3. }

y llamo

Código HTML:
Ver original
  1. <a href="javascript:cambiarota();">Detener</a>

Pero sigue sin funcionar.
  #8 (permalink)  
Antiguo 03/05/2012, 20:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 82
Antigüedad: 17 años, 1 mes
Puntos: 21
Respuesta: detener funcion set interval

Lo importante es que refreshId esté en el mismo ámbito que la función

he visto que tienes la declaración dentro del ready de jQuery, sacala de ahi y es probable que funcione

una cosa asi :
Código Javascript:
Ver original
  1. var refreshId = null;
  2. $(document).ready(function() {
  3.     $('#banner').fadeIn(1000);
  4.     $("#banner").load("sis-rota.php");
  5.     refreshId = setInterval(function() {
  6.         $('#banner').fadeOut(1000);
  7.         $("#banner").load('sis-rota.php?next=1');
  8.         $('#banner').fadeIn(1000);
  9.     }, 5000);
  10.     $.ajaxSetup({
  11.         cache : false
  12.     });
  13. });
  14.  
  15. function cambiarota() {
  16.     clearInterval(refreshId);
  17. }

Código HTML:
Ver original
  1. <a href="javascript:cambiarota();">Detener</a>
__________________
Hazle un favor a tu cerebro y juega Ajedrez online
Chess online
  #9 (permalink)  
Antiguo 03/05/2012, 21:42
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: detener funcion set interval

Perfecto amigo, muchas gracias. xD

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:05.