HTML:
<div>
<button data-id="3">Click Me</button>
</div>
在经典的jQuery中我会这样做:
$("div").on("click","button", test);
function test(){
alert($(this).data("id"));
}
获取被点击元素的 data-id
。
在 TypeScript(类中)中,我使用:
class foo { ...
$("div").on("click", "button", (event) => this.test());
public test(){
alert($(this).data("id")); // "undefined"
console.log($(this));
}
....
}
我在这里没有得到被点击的元素 - $(this)
是类的实例。
我做错了什么?
this
被视为始终指向相应的对象。因此,你有两个解决方案 - 要么使用event.target
属性捕获点击的元素,要么将处理程序函数定义在该类之外。 - raina77ow