重复jQuery AJAX POST功能

时间:2009-11-25 21:37:33

标签: jquery ajax

我有一个可点击的div加载来自我的数据库的下5条评论,类似于Twitter如何将新推文加载到您的时间线中。我的代码中还有一些其他POST函数,它们可以被多次触发,但是这个函数不会。

这是代码 - 从URL返回的注释(网站是codeigniter),插入隐藏的div,然后div滑下来。

$(".content .load-more-comments").live("click", load_messages);
function load_messages() {
    var offset = 10;
    var count = 5;
    $.post((site_url+'project/load_more_messages/'+project_id), { count:count, offset:offset }, function(data) {
        if(data) {
            var more_messages = data;
            $("ul.messages").append('<div class="slidedown" style="display:none;">'+data+'</div>');
            $("ul.messages div.slidedown").slideDown(1000);
            var offset = offset+5;
        } else {
            $("ul.messages").append('<p class="error">Additional messages could not be loaded.</p>');
        };
    });
    return false;   
};

就像我说的那样,它第一次工作正常,但在那之后,没有骰子。我的猜测是函数中的某些东西仍然在运行,但我试图结束任何正在运行但没有用的东西。

1 个答案:

答案 0 :(得分:2)

这些是令人讨厌的行:

var offset = 10;
var count = 5;

每次点击都会发生偏移&amp;计数重置为10&amp;分别为5。您需要在load_messages()函数之外将这些变量声明设置为全局。