gpt4 book ai didi

javascript - jquery 无法读取未定义的属性 'done' - 避免这种情况

转载 作者:数据小太阳 更新时间:2023-10-29 05:15:34 24 4
gpt4 key购买 nike

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

cannot read property 'done' of undefined

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

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;
}

我得到错误:

Uncaught TypeError: undefined is not a function

最佳答案

你可以只返回一个延迟的,这样 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

关于javascript - jquery 无法读取未定义的属性 'done' - 避免这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com