在事件

时间:2016-08-24 02:44:17

标签: javascript dom

我创建了一些对象的实例。对象中的一个函数创建li元素并使用addEventListener("click", this, false)。 当事件处理程序运行时,它可以显示对象实例变量等。所以基本上我知道它访问对象的正确实例并运行事件处理程序。

因此,有一种方法可以从dom元素追溯到创建它的对象的实例。在这种情况下,this是提供链接的内容。

我想做的是通过选择器或id获取元素。然后以某种方式获取对象的实例。找出元素的this是什么(不是将dom元素称为this)我认为解决方法是创建自定义事件并在处理函数中返回对象本身。然后获取元素并像myElement.click()一样运行它。

有更好的方法吗?

1 个答案:

答案 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);
  }
};