Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery无法读取属性';完成';未定义的-避免这种情况_Javascript_Jquery_Undefined - Fatal编程技术网

Javascript jquery无法读取属性';完成';未定义的-避免这种情况

Javascript jquery无法读取属性';完成';未定义的-避免这种情况,javascript,jquery,undefined,Javascript,Jquery,Undefined,我有一个返回结果(或不返回)的函数。问题是,当它不返回我在控制台中得到的任何值时,消息 无法读取未定义的属性“done” 这是真的,我确实理解这个问题。此外,这个错误不会使我的代码停止工作,但是我想知道是否有可能避免这个错误 ajax中的功能是: function getDelivery(){ var items = new Array(); $("#tab-delivery tr").each(function(){ items.push({"id" : $(

我有一个返回结果(或不返回)的函数。问题是,当它不返回我在控制台中得到的任何值时,消息

无法读取未定义的属性“done”

这是真的,我确实理解这个问题。此外,这个错误不会使我的代码停止工作,但是我想知道是否有可能避免这个错误

ajax中的功能是:

function getDelivery(){
    var items = new Array();

    $("#tab-delivery tr").each(function(){
        items.push({"id" : $(this).find('.form-control').attr('id'), "id_option" : $(this).find('.form-control').val()});
    });

    if(items.length > 0){
        return $.ajax({
            url: 'response.php?type=getDelivery',
            type: 'POST',
            data: {content: items}
        });
    }
}
我用以下方式来称呼它:

getDelivery().done(function(data){ // the problem is here
    if(data == false){
        return;
    }
});
那么,有没有办法避免这个错误呢?我尝试了以下几点,但没有成功:

if(items.length > 0){
    return $.ajax({
        url: 'response.php?type=getDelivery',
        type: 'POST',
        data: {content: items}
    });
}else{
    return false;
}
我得到了一个错误:

未捕获类型错误:未定义不是函数


您可以只返回一个延迟,这样
done()
回调就不会产生错误,您可以选择是否解决它

if(items.length > 0){
    return $.ajax({
        url: 'response.php?type=getDelivery',
        type: 'POST',
        data: {content: items}
    });
}else{
    var def = new $.Deferred();
    def.resolve(false);
    return def;
}

完美。我将在8分钟内接受答案。谢谢。
返回$.Deferred().resolve(false)也可以工作,并且稍微不那么冗长。