我创建了一些对象的实例。对象中的一个函数创建li
元素并使用addEventListener("click", this, false)
。
当事件处理程序运行时,它可以显示对象实例变量等。所以基本上我知道它访问对象的正确实例并运行事件处理程序。
因此,有一种方法可以从dom元素追溯到创建它的对象的实例。在这种情况下,this
是提供链接的内容。
我想做的是通过选择器或id获取元素。然后以某种方式获取对象的实例。找出元素的this
是什么(不是将dom元素称为this
)我认为解决方法是创建自定义事件并在处理函数中返回对象本身。然后获取元素并像myElement.click()
一样运行它。
有更好的方法吗?
答案 0 :(得分:0)
这是基本的味道,使用this
:
const obj = {
name: "my object",
listen() {
someElement.addEventListener('click', this.listener.bind(this));
};
listener(event) {
console.log("The event and this name are", event, this.name);
}
};
您还可以使用handleEvent
方法:
const obj = {
name: "my object",
handleEvent() { console.log("I was clicked!", this.name); },
listen() {
someElement.addEventListener('click', this);
}
};