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

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

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

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

27
задан Derek Adair 13 August 2010 в 18:40
поделиться

2 ответа

delay будет работать в вашем случае при использовании с очередью следующим образом:

$("#products").fadeOut(500)
    .delay(600)
    .queue(function(n) {
        $(this).html("hahahhaha");
        n();
    }).fadeIn(500);​

Попробуйте это здесь: http://jsfiddle.net/n7j8Y/

41
ответ дан 28 November 2019 в 05:21
поделиться

вы можете изменить его, чтобы внести изменения, когда fadeOut завершится, используя параметр функции fcallback.

получается:

$("#products").fadeOut(500, function() {
    $(this).html($("#productPage" + pageNum).html());
    $(this).fadeIn(500);
});
1
ответ дан 28 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

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