0

我正在编写 Zendesk 应用程序。在使用 jquery 自动完成选择某些内容后,我需要发出 ajax 请求:

twTicketsRecvd: function(data) {
  this.$("#tags").autocomplete({
    source: descriptions,
    select: function(event,ui){
      this.addTwTicket(event,ui)
    }
  });
},

addTwTicket: function(event,ui) {
  this.ajax('addMapping', 1, 12442)
  //do some other stuff
}

我得到一个this.addTwTicket is not a function 错误

当我将this.ajax()调用放在自动完成选择函数中时,找不到 this.ajax()

这可能更多地与 JS 作用域有关,而不是与 zendesk 本身有关,不幸的是我不太熟悉。

4

1 回答 1

1

我的猜测是,在自动完成this中可能会有一个新的定义,所以你会想要像这样给它起别名:

var _this = this;

twTicketsRecvd: function(data) {
  $("#tags").autocomplete({
    source: descriptions,
    select: function(event,ui){
      _this.addTwTicket(event,ui)
    }
  });
},

addTwTicket: function(event,ui) {
  _this.ajax('addMapping', 1, 12442)
  //do some other stuff
}
于 2014-09-16T01:11:38.293 回答