JQuery auto refresh (setInterval)

Hola gente no sabe la mejor manera de hacer esto – es decir, de dónde poner la if‘s .. tengo un div que se carga una página y tiene una función setInterval ().

Sobre la carga de la página hay 1 botón, de Lo que quiero lograr es cuando el botón #1 (se carga la página) se hace clic en para detener el setInterval() y añadir un nuevo div (posición absoluta) hasta que el botón#2 (en el apended div) se hace clic en, a continuación, reiniciar. .. comprende?

Aquí está mi «base» código

Esta es la acción desde el primer botón

 $('.replybutton').live('click',function(){
    $('.discussion').append('<div class="replyarea">some content in here plus "button number2</div>');
    });

Esta carga la página, inicialmente

$('.discussion').load('board2.php');

Y esta es la función de actualización

var auto_refresh = setInterval(
function()
    {
    $('.discussion').fadeOut().load('board2.php').fadeIn();

    }, 10000);

Fallando nada – (pero NO preferido) yo podría usar una palanca en la página cargada en lugar de anexar utilizado en la $('.replybutton').live('click',function(), pero aún se necesita para detener la actualización y reiniciar basado en la alternancia, pero insisto en la idea de alternar no es la forma preferida.

2 Kommentare

  1. 1

    He creado un ejemplo para que en JSFiddle. Échale un vistazo aquí: http://jsfiddle.net/7YYV7/.

    Código

    var intervalId = 0;
    intervalId = setInterval(fadeDiscussion, 3000);
    
    $(function() {
        $('input[name=click]').bind('click', function() {
            clearInterval(intervalId);     
    
            $('.discussion').append('<div class="replyarea">some content in here plus <input type="button" name="save" value="save"></div>');    
        });
    
        $('input[name=save]').live('click', function() {
             intervalId = setInterval(fadeDiscussion, 3000);   
        });
    });
    
    var i = 1;
    function fadeDiscussion () {
        console.log(i);
        $('.discussion').fadeOut().fadeIn();
        i++;
    }
  2. 1

    Creo que lo que se busca es la función clearInterval(). Esto le permitirá quitar su intervalo basado en el intervalo de identificación (en su caso auto_refresh).

    Aquí están los docs: https://developer.mozilla.org/en/DOM/window.clearInterval

    Ahora usted podría ajustar de devolución de llamada de una función con nombre:

    var reload = function(){
        $('.discussion').fadeOut().load('board2.php').fadeIn();
    };
    
    var auto_refresh = setInterval(reload, 10000);
    
    $('button').click(function(){
        clearInterval(auto_refresh);
    });

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea