Задержка jQuery не работает

Возможный дубликат:
jQuery : Могу ли я вызвать delay () между addClass () и т.п.?

Здравствуйте, у меня проблема.

Приведенный ниже код jQuery у меня не работает.

$("#message").addClass("highlightError").delay(15000).removeClass("highlightError");

Что за ошибка?

Класс даже не добавлен .. Я проверил с помощью Firebug, никаких ошибок не отображается ..

Пожалуйста помоги

Спасибо!


person DiegoP.    schedule 07.08.2011    source источник
comment
stackoverflow .com / questions / 2510115 /   -  person James Khoury    schedule 08.08.2011


Ответы (2)


removeClass не используется очередью эффектов, поэтому задержка на него не влияет. Чтобы вызвать его в очереди эффектов, добавьте его вручную с помощью queue():

$(function(){
    $("#message").addClass("highlightError").delay(2000).queue(function(){
        $(this).removeClass("highlightError");
        $(this).dequeue();
    });
});

Работает здесь: http://jsfiddle.net/QkpJn/1

person gilly3    schedule 07.08.2011

Метод delay () позволяет нам отложить выполнение функций, следующих за ним в очереди. Его можно использовать со стандартной очередью эффектов или с настраиваемой очередью. Задерживаются только последующие события в очереди; например, это не приведет к задержке форм без аргументов .show () или .hide (), которые не используют очередь эффектов.

Обратитесь к ссылке Джеймса Хури, чтобы узнать, как вы можете создавать собственные очереди

person Ali Habibzadeh    schedule 07.08.2011