我的jQuery回调函数不起作用。
Competitor = {
addCompetitorForSave: function($data) {
$.post('/competition/add', $data , function($json) {
}, 'json');
return $json; // I need to return json data .
}
}
之后我需要做下一步。
var data = $('someForm').serialize();
var $json = Competition.addCompetitorForSave(data);
非常感谢。
答案 0 :(得分:3)
在帖子有机会完成之前调用警报。将警报置于回调中。
答案 1 :(得分:3)
post
异步完成,但alert
同步运行。因此尚未设置qa
值。这里不需要返回值,而是需要将额外的回调传递给addCompetitorForSave
。
addCompetitorForSave: function($data, callback) {
var qa = 0;
$.post('/competition/add', $data , function($json) {
callback($json);
}, 'json');
}
var obj = ...;
obj.addCompetitorForSave(theData, function(qa) {
alert(qa);
});
答案 2 :(得分:0)
尝试:
addCompetitorForSave: function($data) {
var qa = 0;
$.post('/competition/add', $data , function($json) {
qa = $json; //this does not work
alert(qa); //getting 0;
}, 'json');
return qa;
}