fade在使用livequery的响应中,自动ajax调用setInterval不会淡入

时间:2012-12-10 17:46:28

标签: jquery ajax livequery

好吧,男士,这就是问题所在。我正在我的网站上进行自动更新(使用ajax)来加载自dom加载以来可能已发布的任何新评论。该脚本工作正常,因为新的注释将加载ajax调用;但是,我希望通过jquery调用fadeIn的响应。我在其他地方使用此代码$(response).hide().prependTo('.ideas').fadeIn('slow');,它工作正常。我相信它可以在其他地方使用,因为我使用.on()方法,但我不能在这里使用它,因为我没有使用任何类型的用户操作来触发事件。

这是当前的代码:

setInterval(function() {

    if (window.location.pathname == "/" || window.location.pathname == "/appreciate" || window.location.pathname == "/appreciate#") {
        var first_message = $('.messages > div.message_wrapper:first').attr('id');
        var pathname = window.location.pathname;
         $.ajax({
            type: "POST",
            url: "/update_comments.php",
            data: {first_message: first_message, pathname: pathname},
            success: function (response) {
                $(response).hide().prependTo('.messages').fadeIn(2000);
            }
        });

    } else {
        var first_idea = $('.ideas > div.message_wrapper:first').attr('id');
         $.ajax({
            type: "POST",
            url: "/update_comments.php",
            data: {first_idea: first_idea, pathname: pathname},
            success: function (response) {
                $(response).hide().prependTo('.ideas').fadeIn(2000);
            }
        });
    }

}, 20000);

if (window.location.pathname == "/" || window.location.pathname == "/appreciate" || window.location.pathname == "/appreciate#") { var first_message = $('.messages > div.message_wrapper:first').attr('id'); var pathname = window.location.pathname; $.ajax({ type: "POST", url: "/update_comments.php", data: {first_message: first_message, pathname: pathname}, success: function (response) { $(response).hide().prependTo('.messages').fadeIn(2000); } }); } else { var first_idea = $('.ideas > div.message_wrapper:first').attr('id'); $.ajax({ type: "POST", url: "/update_comments.php", data: {first_idea: first_idea, pathname: pathname}, success: function (response) { $(response).hide().prependTo('.ideas').fadeIn(2000); } }); } }, 20000);

有什么想法?我考虑使用livequery,我在其他地方看到你可以定义livequery寻找的jquery方法,所以我把它放在我的代码中但它没有做任何事情。

1 个答案:

答案 0 :(得分:0)

好吧......我解决了。

$('.messages').livequery(function () {
    $(response).hide().prependTo('.messages').fadeIn(2000);
});

通过将success:上的livequery添加到.messages div,我可以添加fadeIn效果。