Повторите функцию JQuery AJAX POST - PullRequest
0 голосов
/ 26 ноября 2009

У меня есть интерактивный div, загружающий следующие 5 комментариев из моей базы данных, вроде того, как Twitter загружает новые твиты в вашу временную шкалу. У меня есть несколько других функций POST в моем коде, и они могут быть запущены несколько раз, но эта не будет.

Вот код - комментарии возвращаются с URL-адреса (сайт имеет кодовое обозначение), вставляются в скрытый 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 Ответ

2 голосов
/ 26 ноября 2009

Это оскорбительные строки:

var offset = 10;
var count = 5;

Каждый раз, когда происходит щелчок, смещение и счетчик сбрасываются до 10 и 5 соответственно. Метинкс, вам нужно сделать эти объявления переменных глобальными, вне функции load_messages().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...