Дополнительно
Как ждать 5 секунд с jQuery?
Я пытаюсь создать эффект, при котором страница загружается, и через 5 секунд сообщение об успехе на экране исчезает или скользит вверх.
Как я могу достичь этого?
385
8
Встроенный javascript < a href = "http://www.w3schools.com/js/js_timing.asp" > setTimeout < / a >.
ОБНОВЛЕНИЕ *: вы хотите подождать, так как, когда страница закончила загрузку, поэтому поместите этот код в свой
$ (документ) .ready (...);
Сценарий.ОБНОВЛЕНИЕ 2 *: jquery 1.4.0 ввел метод
.delay
. < a href = "http://api.jquery.com/delay/">Check it < / a >. Обратите внимание, что .delay работает только с очередями эффектов jQuery.Используйте обычный таймер JavaScript:
Это будет ждать 5 секунд после того, как DOM будет готов. Если вы хотите подождать, пока страница действительно не будет «загружена», вам нужно использовать это:
EDIT: В ответ на комментарий OP, спрашивающий, есть ли способ сделать это в jQuery и не использовать
setTimeout
, ответ - нет. Но если бы вы хотели сделать его более «jQueryish», вы могли бы обернуть его так:Вы могли бы тогда назвать это так:
Я столкнулся с этим вопросом и подумал, что предоставлю обновленную информацию по этой теме. jQuery (v1.5+) включает модель
Deferred
, которая * (несмотря на то, что не придерживается [Обещания / A](http:// Promises-aplus.github.io/promises-spec/) до jQuronous. Внедрение метода$ .wait ()
с использованием этого подхода особенно читаемо, я считаю:И вот как вы можете использовать это:
Однако, если после паузы вы хотите выполнять действия только для одного выбора jQuery, то вы должны использовать родной jQuery
.delay ()
, который Я считаю, также использует Отложенные под капотом:Поместите свой код внутрь
{{{}}}
и т.д.
Использовали это для наложения сообщения, которое можно закрыть сразу по щелчку или сделать автозагрузку через 10 секунд.
Underscore library также предоставляет функцию «задержки»:
Основываясь на ответе Джои, я придумал предполагаемое (по jQuery, прочитайте о «очередь») решение.
Он несколько следует синтаксису jQuery.animate () - позволяет связывать его с другими функциями fx, поддерживает «медленный» и другие jQuery.fx.speeds, а также полностью jQuery. И будет обрабатываться так же, как анимация, если вы остановите их.
Тестовый центр jsFiddle с большим количеством употреблений (например, демонстрация .stop ()), можно найти [здесь][1].
ядро решения: & Лт;!- начать фрагмент: js hide: ложная консоль: истинная павиана: false - >
& Лт;!- язык: lang-js - > $ ('< очередь / >') .delay (100 / мс /) .queue ((следующий) = > {$ ('# result') .text ('сделано.«); следующий(); } ;
& Лт;!- конец фрагмента - >
целое как плагин, поддерживающий использование $ .wait () и $ (..) .wait ():
& Лт;!- начать фрагмент: js hide: ложная консоль: истинная павиана: false - >
& Лт;!- конец фрагмента - >
Примечание: , поскольку ожидание добавляет в стек анимации, $ .css () выполняется немедленно - как и предполагалось: ожидаемое поведение jQuery.