【发布时间】:2010-10-10 22:36:48
【问题描述】:
UPDATE3 和 FINAL:感谢 Evan 和 meder!
UPDATE2:我应该澄清一下,我需要调用函数updateFilters (a,b),而不是创建函数。该功能存在于其他地方。很抱歉造成混乱。
下面的代码不能按预期工作 - udpateFilters(a,b) 在 for 循环结束之前被调用。将 async 更改为 false 可以解决问题,但这似乎不对。此外,无论 ajax 是否成功,都会调用 updateFilters()。
我做错了什么?
save (updateFilters(a,b));
function save (cb) {
$.ajax ({
url:'save.php',
data:somedata,
async:true,
success: function (response) {
for (var i in response) {}
if (typeof cb!='undefined') cb;
});
}
function updateFilters (a,b) {
//do some stuff here
}
回答: 因此,正如 meder 建议的那样,我更改了参数。这是答案的 2/3!
save (
(function (a,b) {
return function () {
return updateFilters(a,b);
}
})(a,b)
);
现在更改以下内容:
if (typeof cb!='undefined') cb (); //brackets are important!
一切顺利!
【问题讨论】:
标签: javascript jquery ajax callback