Почему это сразу освобождает текст (игнорирующий задержку)?
$('#error_box_text').html('error text').delay(5000).html('')
jQuery 1.4
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('') });
но это невозможно (пока).
Попробуйте
var sel = $('#error_box_text');
sel.html('error text');
setTimeout(function(){
sel.html('');
}, 5000);
См. delay ()
jQuery.delay () лучше всего подходит для задержки между эффектами jQuery в очереди и такими и не заменяет { {1}} Собственная функция JavaScript setTimeout