将ajax .done范围扩展为包装函数

时间:2014-12-25 23:42:25

标签: javascript ajax scope return

  

我知道这可能被视为重复,但我找不到下面的功能解决方案:

    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(“keyword”)'从里面的.done函数返回返回?如果有人可以为我的特定功能编写一个工作示例,那就太好了。

2 个答案:

答案 0 :(得分:-1)

我不确定这是否是您想要的,但是您可以使用函数变量并在done函数内部设置gresult变量,该变量将在{{{}处结束时返回1}}功能:

countNoFilters

答案 1 :(得分:-1)

您需要设置 async:false 。请运行以下功能:

function countNoFilters(keyword){

    var gresult;

    keyword = typeof keyword !== 'undefined' ? keyword : "keyword="+$("#keyword-hidden").val();

    var getResults = $.ajax({
        type:"GET",
            url:"",
            data:keyword,
            async:false
        });

    getResults.done(function(data){
            var results = $(data).find(".class").length;
            gresult = results;
        });

    return gresult;
}