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

JQuery.delay() не задерживает функцию .html()

Я пытаюсь сделать небольшой трюк javascript, чтобы ослабить div, заменить его содержимое и угаснуть его обратно. Событие .html заменяет содержимое до завершения fadeOut...

$("#products").fadeOut(500)
              .delay(600)
              .html($("#productPage" + pageNum).html())
              .fadeIn(500);

Похоже, что .html() не задерживается методом .delay().

4b9b3361

Ответ 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);