JQuery-де кешіктіру () 'd элементінің кешігуін кеңейту

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 арасындағы кідіріс үшін жақсы   әсерлері.           Бұл шектелгендіктен, мысалы, кешіктіруді болдырмаудың бір жолы ұсынылмайды.       кешіктіру() - JavaScript-ның native setTimeout функциясын ауыстыру емес,           ол белгілі бір пайдалану жағдайларына сәйкес болуы мүмкін.

Сондықтан сіз оны 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
қосылды