Задержка jQuery () не задержка

Почему это сразу освобождает текст (игнорирующий задержку)?

$('#error_box_text').html('error text').delay(5000).html('')

#

jQuery 1.4

18
задан artemave 12 March 2010 в 12:45
поделиться

2 ответа

delay будет никогда задерживать обычные методы - только те, которые подталкиваются к цепочке анимации/эффекта. Если вы хотите задержать вызов html(), используйте queue ( http://api.jquery.com/queue/ ):

$('#error_box_text').html('error text').delay(5000).queue(function() {
   $(this).html('')
});

Было бы неплохо, если бы вы могли сделать

$('#error_box_text').html('error text').delay(5000, function() { $(this).html('') });

но это невозможно (пока).

31
ответ дан 30 November 2019 в 07:49
поделиться

Попробуйте

var sel = $('#error_box_text');
sel.html('error text');
setTimeout(function(){
    sel.html('');
}, 5000);

См. delay ()

jQuery.delay () лучше всего подходит для задержки между эффектами jQuery в очереди и такими и не заменяет { {1}} Собственная функция JavaScript setTimeout

1
ответ дан 30 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

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