嗨,我的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);
非常感谢。
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);
});
在帖子有机会完成之前调用警报。将警报放入回调中。
try:
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;
}