TypeScript单击事件处理程序

时间:2015-11-16 21:29:52

标签: javascript-events typescript

在Javascript中,以下代码按预期工作:

$("#field").click(eventHandler);

function eventHander() {
  invokeClassMethod();
  // do other stuff
}

我在打字稿中尝试了这个,我收到一个错误,因为它出现了"这个"已经变成了不属于我班级的东西。

$("#field").click(this.eventHandler);

eventHandler() {
  this.invokeClassMethod();
  // do other stuff
}

给我一​​个错误,因为" invokeClassMethod"未定义。

我是打字稿的新手,所以有人可以告诉我错误是什么以及如何解决它?

1 个答案:

答案 0 :(得分:3)

好的答案很简单,实际上归结为我对Javascript功能不熟悉......这就是我如何使用它:

$("#field").click(() => this.eventHandler());

使用bind()也可以:

$("#field").click(this.eventHandler.bind(this));

和jQuery代理工作:

$("#field").click($.proxy(this.eventHandler, this));