Пашырэнне затрымкі і без таго затрымкі () 'd элемент у JQuery

У мяне ёсць элемент, які ўсталяваны знікаць пасля затрымкі 1500ms. гэта значыць: нешта накшталт:

$("<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
дададзена