JQuery.delay() не задерживает функцию .html()
Я пытаюсь сделать небольшой трюк javascript, чтобы ослабить div, заменить его содержимое и угаснуть его обратно. Событие .html заменяет содержимое до завершения fadeOut...
$("#products").fadeOut(500)
.delay(600)
.html($("#productPage" + pageNum).html())
.fadeIn(500);
Похоже, что .html()
не задерживается методом .delay()
.
Ответы
Ответ 1
delay
будет работать для вашего случая при использовании с queue
следующим образом:
$("#products").fadeOut(500)
.delay(600)
.queue(function(n) {
$(this).html("hahahhaha");
n();
}).fadeIn(500);
Попробуйте здесь: http://jsfiddle.net/n7j8Y/
Ответ 2
вы можете изменить его, чтобы внести изменения, когда fadeOut завершен с использованием параметра функции fcallback.
поэтому он становится:
$("#products").fadeOut(500, function() {
$(this).html($("#productPage" + pageNum).html());
$(this).fadeIn(500);
});
Ответ 3
Может быть, "очередь" - это нормально,
Но это javascript-решение работает лучше для меня:
setTimeout (function(){
$("#products").html('Product Added!');
},1000);