TypeScript 单击事件处理程序

TypeScript click event handler

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

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

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

我在 Typescript 中尝试了这个,但出现错误,因为 "this" 的上下文似乎已更改为不是我的 class.

的内容
$("#field").click(this.eventHandler);

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

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

我是 Typescript 的新手,有人可以告诉我哪里出了问题以及如何解决吗?

好吧,答案很简单,归根结底是我不熟悉 Javascript 功能……我是这样工作的:

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

使用 bind() 也有效:

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

和 jQuery 代理有效:

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