Продовження затримки елемента already delay () 'd у jQuery

У мене є елемент, який буде вичерпатися після затримки 1500 мс. тобто: щось на кшталт:

$("<div>My Element</div>").appendTo("body").delay(1500).fadeOut(400);

Чи існує спосіб в jQuery продовжити цей період затримки, поки елемент вицвітає все ще очікує?

1

3 Відповіді

setTimeout() {
    function() {
        $("<div>My Element</div>").appendTo("body").fadeOut(400);
    }, 1500
}
1
додано

From http://api.jquery.com/delay/

Метод .delay() найкращий для затримки між черги jQuery   ефекти           Оскільки він обмежений, він, наприклад, не пропонує спосіб скасувати затримку.       Затримка() не є заміною власної функції setTimeout JavaScript,           які можуть бути більш доречними для певних випадків використання.

Тому я боюся, що ви можете зробити це лише за допомогою JavaScript settimeout() .

Виправте мене, якщо я помиляюсь. :)

р.с. Просто додати, що ви можете скасувати відкладену анімацію, використовуючи .clearQueue() .

1
додано

.delay() probably uses setTimeot() or setInterval(). I'm not sure what effect you are trying to get, but if you want to reset the timer (or restart it), you can do something like this: http://jsfiddle.net/rkw79/4AevQ/

var t;
$('div').click(function() {
    clearTimeout(t);
    t= setTimeout("$('div').fadeOut(400);", 1500);
});

$('div').trigger('click');

Код, наведений вище, зникає з "div", якщо користувач не натискає його.

0
додано