我尝试搜索了一段时间,但实际上找不到任何东西。可能没有适当地措辞,但是下面是示例代码。
class MyClass {
constructor(){
this.list = $('li.someClass');
this.runEvents();
}
runEvents() {
this.list.on('mouseover', this.getSomeProperty.bind(this));
}
getSomeProperty() {
// how do i get the specific element now that this points to the instance of MyClass?
var attribute = $(this).data('someAttr');
}
}
希望以上内容有意义。向我指出正确方向的任何帮助将不胜感激。
一旦绑定了函数,就不可能将其原始的this
返回到事件处理程序中。但是您可以检查event
参数,并查看event.currentTarget
以获取触发侦听器的元素:
getSomeProperty(event) {
const list = event.currentTarget;
const attribute = $(list).data('someAttr');
}
[引用范围,而不是.currentTarget
。.target
更可靠,因为它引用侦听器所附加的元素,而不是事件被调度到的内部元素。)li.someClass
中获取当前事件。如果使用lambda表示法,则不需要绑定。 <span>
li