从内部调用函数on()

Lin*_*nda 1 jquery

我需要从on()处理程序中调用一个函数.在我的示例代码中,我必须调用func1().我用的on()#myid不会对文件的负载存在.这是代码:

func1: function (e, data) {
  console.log('func1');
  this.func3();
},
func2: function (e, data) {
  $('#myid').on('click', function () {
    this.func1();
  });
}
},
Run Code Online (Sandbox Code Playgroud)

此代码不起作用.错误是:

未捕获的TypeError:this.func1()不是函数

如何从内部调用函数on()

31p*_*piy 5

未捕获的TypeError:this.func1()不是函数

您将遇到此错误,因为this此处的上下文不同.它指向jQuery元素的上下文#myid,而不是原始元素.要摆脱它,试试这个:

// ... Code removed for brevity

func2: function (e, data) {
         var self = this;

         $('#myid').on('click', function () {
           self.func1();
         });
       }

// ... Code removed for brevity
Run Code Online (Sandbox Code Playgroud)