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)
是该类的实例。
我做错了什么?
根据Typescript 的规范 http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf“this”指的是该方法所属/被调用的类的实例。
您可以使用传递给回调的事件对象的目标属性:
class foo {
public test(evt){
alert($(evt.target).data("id")); // "undefined"
console.log($(evt.target));
}
}
Or event.currentTarget
取决于您是否想要获取实际单击的元素或捕获事件的元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)