gpt4 book ai didi

javascript - jQuery 不会在回调中设置更高范围的对象

转载 作者:行者123 更新时间:2023-12-02 20:38:39 25 4
gpt4 key购买 nike

我有一个 jQuery 回调函数。在该函数中,我希望它更改更高范围内的变量的值,但由于某种原因它没有这样做。这是代码:

function add() {
var returnedData = {
my_id: 0
};

$.post("add_event.php", { event : toSendText }, function(data) {
returnedData.my_id = 5;
}, "json");

if(add_page == true){
alert(returnedData.my_id);
window.open('content-list.php?cal_id=');
}
}

最佳答案

问题是 $.post()是异步的,因此 returnedData.my_id = 5; 发生在 alert() 执行之后(数据在某个时刻从服务器返回)稍后,当请求完成时)。

为了让这项工作如您所愿,您需要在数据可用后继续在回调中工作,如下所示:

function add() {
$.post("add_event.php", { event : toSendText }, function(data) {
if(data.add_page == true) {
//use data in some way here presumably
window.open('content-list.php?cal_id=' + data.id); //maybe this?
}
}, "json");
}

关于javascript - jQuery 不会在回调中设置更高范围的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862491/

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