一千萬個為什麽

搜索

使用object的方法作為$ .post的回調函數

$ .Comment = function(){       this.alertme =“警報!”;     }

$.Comment.prototype.send = function() {

  var self = this;
  $.post(
    self.url,
    {
      'somedata' : self.somedata
    },
    function(data, self) {
      self.callback(data);
    } 
  );

}

$.Comment.prototype.callback = function(data) {
  alert(this.alertme);
}

When I'm calling $.Comment.send() debugger is saying to me that self.callback(data) is not a function

我究竟做錯了什麽?

謝謝

最佳答案

您不希望將 self 聲明為success函數的參數。如果刪除該聲明,您將獲取本地變量,這是您想要的。例如。:

$.Comment = function() {
    this.alertme = "Alert!";
}

$.Comment.prototype.send = function() {

    var self = this;
    $.post(
        self.url,
        {
            'somedata' : self.somedata
        },
        function(data) {        //<== removed `self` argument
            self.callback(data);//<== now sees `self` local var
        }
    );

}

$.Comment.prototype.callback = function(data) {
    alert(this.alertme);
}

轉載註明原文: 使用object的方法作為$ .post的回調函數