Tengo un div donde cuando hago clic en él, se agrega una clase de ‘jugar’. Luego, después de 10 segundos, quiero agregar una clase de ‘terminado’.

Tengo este código, pero ¿cómo hago tiempo así que después de 10 segundos, se agrega la clase de finsihed?

  $('.albums img').on('click',function(){
    $(this).addClass('playing');
  });

Cualquier ayuda es muy apreciada.


Un millón de gracias a todos. He utilizado esta pregunta para mostrar ~30 estudiantes en HackerYou cómo utilizar stackoverflow para obtener de primera clase de la ayuda de la comunidad.

Registro de salida .función delay ().
mientras estás en ello @Wes – recordarles a hacer un poco de investigación de su problema y hacer preguntas específicas (demasiado amplio, o no investigado preguntas tienden a bajar de votación). También vale la pena señalar que, cuando sea posible, la publicación de su código a un servicio, como JSFiddle, JSBin o similares tiende a acelerar las respuestas

OriginalEl autor wesbos | 2013-11-22

3 Comentarios

  1. 12

    Trate de usar setTimeout especificando retardo de 10 segundos.

     $('.albums img').on('click',function(){
        var $this = $(this).addClass('playing');
        window.setTimeout(function(){
            $this.addClass('finsihed');
        }, 10000); //<-- Delay in milliseconds
      });
    Un millón de gracias a todos. He utilizado esta pregunta para mostrar ~30 estudiantes cómo utilizar stackoverflow para obtener de primera clase de la ayuda de la comunidad.

    OriginalEl autor PSL

  2. 2

    Puede utilizar .delay() junto con .queue()

    $('.albums img').on('click', function () {
        $(this).addClass('playing').delay(3000).queue(function () {
            $(this).addClass('finsihed')
        });
    });

    Demo: El violín

    OriginalEl autor Arun P Johny

  3. 0

    Puede utilizar la función setTimeout() para invocar una función de devolución de llamada después de 10 segundos.

    Por ejemplo.

    var timeout = null;
    
    $('.albums img').on('click', function() {
        var self = this;
    
        $(self).addClass('playing');
    
        //clear previous timeout if it exists
        timeout && clearTimeout(timeout);
    
        //set the timeout
        timeout = setTimeout(function() {
            $(self).addClass('finished');
    
        //10 seconds
        }, 10e3);
    });

    OriginalEl autor Austin Brunkhorst

Dejar respuesta

Please enter your comment!
Please enter your name here