Подтвердить что ты не робот

Задержка JQuery() не задерживается

Почему это немедленно очищает текст (игнорируя задержку)?

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

#

jQuery 1.4

4b9b3361

Ответ 1

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('') });

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

Ответ 2

Try

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

См. delay()

jQuery.delay() лучше всего подходит для отсрочки между параметрами jQuery в очереди и такой, и не является заменой Встроенный JavaScript setTimeout Функция