Jquery post回调不起作用


Jquery post call back not works

嗨,我的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;
    }