0

次のコードがあります。

function getChainDeals(chainID) {
    $('#loadingDiv1').show();
    var apiCode = * my unique api code * ;
    var imageURL;
    //Get relevant Image
    $.ajax({
        url: 'http://api.8coupons.com/v1/getchainstorelist?key=' + apiCode,
        dataType: 'jsonp',
        success: function (data) {

            $.each(data, function (key, value) {

                alert('key = ' + key);
                alert('chainid = ' + chainID);

                if (key === chainID - 1) {
                    alert('here');
                    imageURL = value.logoBig;
                    alert('imageURL = ' + imageURL);
                    return false;
                }
            });
            // hide the loading animation
            $('#loadingDiv1').hide();
        },
        statusCode: {
            404: function () {
                alert: ('There was a problem with the server');
            }
        }
    });
    alert(imageURL);
    alert(chainID);
}

ただし、何らかの理由でAJAX呼び出しがスキップされ、最後の 2 つだけalertsが処理されています。私は実際にプログラムの前半でほぼ同じコードを使用しましたが、問題なく動作しました...

ここで何がうまくいかないのか誰にもわかりますか?

ご協力ありがとうございました。

4

1 に答える 1

1

alertajax は非同期であるため、s を ajax コールバック内に配置する必要があります。

function getChainDeals(chainID) {
    $('#loadingDiv1').show();
    var apiCode = * my unique api code * ;
    var imageURL;
    //Get relevant Image
    $.ajax({
        url: 'http://api.8coupons.com/v1/getchainstorelist?key=' + apiCode,
        dataType: 'jsonp',
        success: function (data) {

            $.each(data, function (key, value) {

                alert('key = ' + key);
                alert('chainid = ' + chainID);

                if (key === chainID - 1) {
                    alert('here');
                    imageURL = value.logoBig;
                    alert('imageURL = ' + imageURL);
                    return false;
                }
            });
            // hide the loading animation
            $('#loadingDiv1').hide();

            alert(imageURL);
            alert(chainID);
        },
        statusCode: {
            404: function () {
                alert: ('There was a problem with the server');
            }
        }
    });
}
于 2013-11-06T14:19:12.360 に答える