0

好吧,大佬们,问题来了。我正在我的网站上进行自动更新(使用 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);

有什么想法吗?我考虑过使用 livequery,我在其他地方看到你可以定义 livequery 查找的 jquery 方法,所以我把它放在我的代码中 $.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'appendTo', 'prependTo');但它没有做任何事情。

4

1 回答 1

0

好吧……我解决了。

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

通过success:.messagesdiv 上添加 livequery,我能够添加淡入淡出效果。

于 2012-12-10T17:57:18.593 回答