我有这个jQuery函数:

var searchResultsCounter = 0;
function searchPerson(filterText){
    //code
    $.ajax({
        type: "GET",
        dataType:"json",
        url: "res/main.php",
        data: { command : "loadPeople",
                filter: filterText },
        success: function( people ){
            for(var i = 0; i< people.length; i++){
                //code
            }
            searchResultsCounter = people.length;
            console.log(searchResultsCounter);
        }
    });
console.log(searchResultsCounter);
return searchResultsCounter;
}


在第一个控制台日志中,我的searchResultsCoutner具有很好的值,在第二个日志中,它变为0。为什么会发生这种情况?

最佳答案

Ajax请求是异步执行的,因此尝试更改变量的success回调函数将在以后执行。

您的函数仅返回0。您必须重写代码以使其以异步方式工作。一种方法是将回调函数作为参数传递给searchPerson

08-04 17:36