javascript - 调用 jQuery AJAX 中包含的方法,该方法包含在同一类的方法中

标签 javascript jquery oop javascript-objects

我一直在尝试从其中一个方法内的 AJAX 调用访问同一类的一些方法,但它不起作用。这里可能有什么问题?我收到此错误 Uncaught TypeError: this.createTimeline is not a function 请参阅下面代码的注释!

//sequenceRender is the class and below is one method
sequenceRender.prototype.ajaxSequence = function(){
    this.ajaxSequence = $.ajax('getSequence.php', {
                    dataType: 'json',
                    timeout: 2000
                });

   this.ajaxSequence.done(function (data, status, jqXhr) {
      console.log(data)
      this.SEQUENCE=data // I cannot access properties 
      this.createTimeline() // or methods from same class
      this.createWells() // from inside here

   })

  this.ajaxSequence.fail(function (jqXhr, textStatus, errorMessage) {
     console.log(errorMessage)
  })
}

最佳答案

当您尝试在事件中调用此函数时,this 看起来将具有不同的值

尝试添加以下更改,并告诉我这是否适合您

sequenceRender.prototype.ajaxSequence = function() {
    mainContext = this;
    this.ajaxSequence = $.ajax('getSequence.php', {
                    dataType: 'json',
                    timeout: 2000
                });

   this.ajaxSequence.done(function (data, status, jqXhr) {
      console.log(data)
      mainContext.SEQUENCE=data 
      mainContext.createTimeline() // call the 'this' from here
      mainContext.createWells()

   })

  this.ajaxSequence.fail(function (jqXhr, textStatus, errorMessage) {
     console.log(errorMessage)
  })
}

关于javascript - 调用 jQuery AJAX 中包含的方法,该方法包含在同一类的方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59754788/

相关文章:

javascript - "OOP"-JS - 设置属性等于函数

java - 我对何时使用抽象类或接口(interface)的理解

php - 带有 javascript 控件的 Flash MP3 播放器

javascript - 使用 Gmail API NodeJS 授权错误列出邮件

javascript - 获取 window.scrollby 的结尾

jquery - 不应用 jQuery LazyLoad 插件识别客户端是否是机器人 - cakephp

c# - 混淆 : Internal, 保护和保护内部

javascript - Sinon stub 未正确替换 stub 函数

javascript - Ajax 加载 url 中存在空格的问题

php - 如何在wordpress选项中保存短代码的内容?