0

我希望我用正确的词来描述这个问题......在这里我定义了一个名为 TK 的对象,它带有一个属性和方法。

var TK = {
    List: [],
    getSectionA: function(listName) {
        var arrayList = [];
        TK.returnList = $.get(
            'ajax/test.html', 
            { sendName: listName }, 
            function(data) {
            }
        );       
    }
};

调用函数

$("#dropDownList").change(function() {
    TK.getSectionA(fileName);

// 这里我试图跳出下面的这个回调函数并在将回调返回数据(resultLists)分配给一个变量(TK.List)之后继续正常的代码执行但是当我警告数组变量TK.List时,什么都没有显示。

TK.List = TK.returnList.done(function(data) {
    var resultLists = [];
    $.each(data, function(index, value) {
        if (value == "false") {
            return false;
        }
        else if (value == "") {
            return false;
        }
        else {
            resultLists[index] = value;
        }
    });
    return resultLists;   
});
alert(TK.List.join("")) // not displaying
4

1 回答 1

0

就像var resultLists = [];全球一样。

然后在调用 AJAX 后设置一个计时器。一旦定时器到期,做

TK.List = resultsLists;

或者做这样的事情:

while(true){
    if(resultLists.length > 0) {
        break;
    }
}
TK.List = resultLists;

但请确保在循环内部使用了一个局部变量,并且仅在循环结束时$.each分配给它。resultLists

于 2013-01-17T15:20:18.457 回答