在函数内部调用类方法

时间:2018-05-31 07:25:30

标签: javascript jquery angular typescript

在我的组件中,我有一个方法,我附加了一个jquery事件绑定。

jqueryNextDataEditableShow() {
    $('#symbolTable .editable').on('hidden', function (e, reason) {
      if (reason === 'save' || reason === 'nochange') {
        var $next = $(this).closest('td').next().find('.editable');
        if($next != undefined && $next.length == 0){
          //call that method
        }
        setTimeout(function () {
          $next.editable('show');
        }, 300);
      }
    });
  }

我在课堂上有另一种方法,onSimulate()

onSimulate(){
   console.log("onSimulate Method Called");
}

我想在我放置注释标记的jqueryNextDataEditableShow()内调用它。我面临的问题是,在函数this内部,关键字将指向文档标记或元素。

1 个答案:

答案 0 :(得分:0)

使用箭头功能=>代替 -

jqueryNextDataEditableShow() {
    $('#symbolTable .editable').on('hidden',  (e, reason) => {
      if (reason === 'save' || reason === 'nochange') {
        var $next = $(this).closest('td').next().find('.editable');
        if($next != undefined && $next.length == 0){
          //call that method
        }
        setTimeout(() => {
          $next.editable('show');
        }, 300);
      }
    });
  }

有关arrow function的详细信息,请参阅此处 -