我有一个返回结果(或不返回结果)的函数。问题是当它不返回任何值时我在控制台中收到消息
无法读取未定义的属性“完成”
这是真的,我确实理解这个问题。另外,此错误不会使我的代码停止工作,但我想知道是否有机会避免这种情况?
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;
}
我收到错误:
未捕获的类型错误:未定义不是函数
你可以只返回一个 deferred,这样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;
}
FIDDLE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)