javascript - addEventListener 是如何工作的?

标签 javascript dom

var elem=document.getElementById('mydiv');
elem.addEventListener('click',function(){...});

执行上述代码后,elemHTMLDivElement 接口(interface)的一个实例。我的大问题是 addEventListener() 方法到底做了什么。它在哪些 DOM 对象中注册监听器以及它是如何注册的(它更改了这些 DOM 对象的哪些属性)。换句话说,我想知道 elem 是如何被告知添加了一个监听器的,它的哪些属性(所有属性都到它的原型(prototype)链)受到了影响。例如,我知道 Event.prototype 具有重要的属性,如 typetarget;但是我无法将它们与 elem...

“连接”

我不想查找哪些事件监听器附加到上述 DOM 节点。我想知道内部程序。

谢谢

最佳答案

After execution of the above code elem is an instance of HTMLDivElement interface. My big question is what exactly addEventListener() method does.

In which DOM objects does it register the listener

在调用 addEventListener 的 DOM 元素上。 (当然,子元素上的事件可能会冒泡)。

and how it does that (which properties of these DOM objects it changes)

它是如何做到的是一个内部实现细节。它不会更改 DOM 对象的用户可见属性。

In other words, I'd like to know how elem is informed about the addition of a listener

不是。

which of its properties (all of them down to its prototype chain) are affected

都没有。

For example I know that Event.prototype has crucial properties like type, target; however I cannot "connect" them with elem...

这些是Event的属性,与elem无关。

关于javascript - addEventListener 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33914044/

相关文章:

javascript - 更改从 JSON 数组创建的列表中的项目

javascript - 如何在 Javascript 中请求受密码保护的页面

javascript - 附加克隆模板仍然是片段类型

javascript - 如何使用 Javascript 从 XML 获取属性值?

android - Qt 5 在Android 上解析HTML

javascript - 如何将 .txt 字符串转换为 basil.js 中的变量?

javascript - 如何调整 FacetFilterItems 的长度?

javascript - 如何在 Javascript 中识别节点列表中的标签?

javascript - 如何停止 DOM javascript 事件处理程序

javascript - 使用 Messenger SDK 发送文件数据