jQuery .delay()不会延迟.html()函数

时间:2010-08-13 01:20:04

标签: jquery jquery-animate

我正在尝试做一个小小的javascript技巧来淡出div,替换它的内容,然后淡入它。.html事件正在fadeOut完成之前替换内容......

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

.html()方法没有延迟.delay()

3 个答案:

答案 0 :(得分:40)

delayqueue一起使用时适用于您的情况:

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

在此处试试:http://jsfiddle.net/n7j8Y/

答案 1 :(得分:1)

你可以改变它,以便在使用fcallback函数参数完成fadeOut时进行更改。

所以它变成了:

$("#products").fadeOut(500, function() {
    $(this).html($("#productPage" + pageNum).html());
    $(this).fadeIn(500);
});

答案 2 :(得分:1)

也许“排队”方式没关系, 但是这个javascript解决方案对我来说效果更好:

    setTimeout (function(){
      $("#products").html('Product Added!');
    },1000);