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));
在 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));