время / ожидание в JQuery - PullRequest
0 голосов
/ 05 февраля 2011

Я пишу ротатор баннера и хочу, чтобы он циклически повторялся среди нескольких изображений через несколько секундЕсть ли в jQuery что-то для ожидания, а затем для обратного вызова?Я вижу метод .delay, но в нем нет функции обратного вызова.Или, может быть, я должен использовать функцию, зависящую от браузера?Или, может быть, JavaScript уже содержит функцию, которая мне нужна?Я новичок в JavaScript: - |.

Ответы [ 4 ]

3 голосов
/ 05 февраля 2011

Вы всегда можете использовать собственный javascript:

setTimeout(function(){ /* do your stuff */ }, 1000);

Вы можете повеселиться с миксинами:

var timeoutCallback = function() {
    this.foo = 5;
}

var scheduleTimeout = function(obj, delay) {
    setTimeout(function(){ timeoutCallback.call(obj); }, delay);
}

var myobj = { foo: 1, bar: 2 }
scheduleTimeout(myobj, 1000); // myobj.foo becomes 5 after 1000ms delay
0 голосов
/ 10 ноября 2011

Это самый простой пример, который я могу себе представить, и сжатая версия того, что уже сказала Джой Датта. Сначала отображается «Пожалуйста, подождите», а через 3 секунды «... готово!». Бросьте его в консоль Firebug и посмотрите, что произойдет: -)

$('body').html('Please wait!');
setTimeout(function (){$('body').html('...done!');}, 3000);
0 голосов
/ 05 февраля 2011

То есть вам нужно запустить эффект не сразу, а через какое-то время?Итак, это функция delay ().

$("#test").delay(3000).fadeOut('slow');
// after 3 seconds element starts to fade out

PS

Но будьте осторожны с задержкой.Например, этот код:

$("#test").fadeOut(1000).sleep(1000).fadeIn(1000);

не будет работать так, как кто-то может подумать.Сон будет работать синхронно с fadeOut, но не после его завершения.Так что если вы хотите сделать эффект завершенным, а потом сделать что-то - вы должны сделать это с помощью функции обратного вызова.

0 голосов
/ 05 февраля 2011

Вы правы в отношении задержки being пути, если вам нужно время jQuery Effects.

Посмотрите документацию jQuery по эффектам и заплатитевнимание на то, как работает очередь эффектов, это очень хорошая структура.:)

...