将 ajax .done 作用域扩展到包装函数



我知道这可能被认为是重复的,但我无法在下面找到我的函数的解决方案:

    function countNoFilters(keyword){
    keyword = typeof keyword !== 'undefined' ? keyword : "keyword="+$("#keyword-hidden").val();
    var getResults = $.ajax({
        type:"GET",
        url:"",
        data:keyword
    });
    getResults.done(function(data){
        var results = $(data).find(".class").length;
        return results;
    });
} 

如何让我的函数"countNoFilters("关键字")"从里面的 .done 函数返回返回?如果有人可以为我的特定功能编写一个工作示例,那就太好了。

我不确定这是否是你想要的,但你可以使用一个函数变量,在 done 函数中,你只需设置gresult变量,该变量将在countNoFilters函数的末尾返回:

function countNoFilters(keyword){
    var gresult;
    keyword = typeof keyword !== 'undefined' ? keyword : "keyword="+$("#keyword-hidden").val();
    var getResults = $.ajax({
        type:"GET",
            url:"",
            data:keyword
        });
    getResults.done(function(data){
            var results = $(data).find(".class").length;
            gresult = results;
        });
    return gresult;
} 

你需要设置 async:false。请运行以下函数:

函数计数NoFilters(关键字){    var gresult;    关键字 = 关键字类型!== '未定义' ?关键字 : "keyword="+$("#keyword-hidden").val();    var getResults = $.ajax({        类型:"获取",            网址:",            数据:关键字,            异步:假        });    getResults.done(function(data){            var results = $(data).find(".class").length;            结果 = 结果;        });    返回结果;}

最新更新