. Функция обратного вызова .ajaxStop выполняется несколько раз

Я использую jQuery, но Моя проблема в том, что моя переменная страницы увеличивается несколько раз, даже когда я использую "page + = 1" в функции обратного вызова .ajaxStop, потому что она выполняется более одного раза после первого использования. Я использую эту переменную как параметр, передаваемый в Flickr API, чтобы получить определенную страницу данных.

Происходит то, что при первом вызове этой функции функция обратного вызова выполняется один раз. Затем я вызываю ту же функцию с помощью кнопки «Дополнительно», чтобы получить следующий набор результатов, но в этот раз функция вызывается дважды, в следующий раз она вызывается трижды и так далее ... Это означает, что я могу получить страницу 1, 2, 4, 7, 11 и т. Д.

Функции AJAX, которые я вызываю, - это в основном функция .getJSON и некоторые дополнительные функции .getJSON, вызываемые в его методе обратного вызова [внутри getPhotos (id)]

// This gets the user ID from a given Flickr user page URL and does some presentation stuff
function getUserID() {
    $("#moreRow").hide(350);

    var usr = document.getElementById('user').value
    var Req_addr = 'http://api.flickr.com/services/rest/?method=flickr.urls.lookupUser&api_key=' + API_key + '&url=http%3A%2F%2Fflickr.com%2Fphotos%2F' + usr + json
    $.getJSON(Req_addr, function(data) {
        // Once the user is known, data about its photos is requested    
        getPhotos(data.user.id)
    });

    // This hides the user data panel    
    $("#userInfo").hide(0);

    // This hides the settings panel    
    $("#settings").hide(0, function() {
        $("#loader").slideDown(750);
    });    

    // This is what displays the photos when all of the AJAX requests have received their responses (ajaxStop)
    $("#photos").ajaxStop(function() {
        // the page counter is incremented for the next page to be requested next time
        page += 1

        // Add the data for the newly obtained photos to the table
        addPhotosToTable()
    });
}

Любые намек относительно того, что я делаю не так?

Вы можете увидеть весь исходный код здесь: http://luisargote.com/flickr/javascript/argote_flickr.js

8
задан Argote 8 February 2011 в 18:32
поделиться