jQuery: я могу назвать задержку () между addClass () и таким?

Что-то столь же простое как:

$("#div").addClass("error").delay(1000).removeClass("error");

кажется, не работает. Какова была бы самая легкая альтернатива?

175
задан serg 24 March 2010 в 17:46
поделиться

3 ответа

Вы можете создать новый элемент очереди, чтобы удалить class:

$("#div").addClass("error").delay(1000).queue(function(next){
    $(this).removeClass("error");
    next();
});

Или с помощью метода dequeue :

$("#div").addClass("error").delay(1000).queue(function(){
    $(this).removeClass("error").dequeue();
});

Причина, по которой вам нужно вызвать next или dequeue , заключается в том, чтобы сообщить jQuery, что все готово с этим элементом в очереди и что он должен перейти к следующему.

354
ответ дан 23 November 2019 в 20:25
поделиться

Задержка работает в очереди. и, насколько я знаю, манипуляции с css (кроме как через animate) не ставятся в очередь.

2
ответ дан 23 November 2019 в 20:25
поделиться

AFAIK метод задержки работает только для числовых модификаций CSS.

Для других целей JavaScript поставляется с методом setTimeout:

window.setTimeout(function(){$("#div").removeClass("error");}, 1000);
48
ответ дан 23 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: