JS事件和DOM事件有什么区别?

6

我在学习js中的事件(如:click,keyPress...),但是在网上看到很多关于“DOM事件”的讨论。那么我的问题是,js事件和DOM事件是相同的吗?如果不是,它们有什么区别?


3
“js事件”并没有官方定义,因此在使用这个术语时需要解释清楚你的意思。可以通过js监听DOM事件。某个js库可能会创建自己的事件系统,以便通知其它代码片段关于特定操作的信息。 - jfriend00
4个回答

3

DOM事件在DOM发生变化或与用户交互时触发,它们是由JavaScript事件引发的。 请阅读所有的事件: http://www.w3schools.com/jsref/dom_obj_event.asp

除了DOM事件外,您可以在JavaScript中定义自己的事件对象,并使用“dispatchEvent”方法来触发该事件。例如:

var event = new Event('build');

// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);

// Dispatch the event.
elem.dispatchEvent(event);

简而言之,你可以将DOM事件视为从DOM元素触发的本地Javascript事件。而Javascript事件可以是DOM事件或自定义事件。

2

DOM事件是DOM中的元素或对象监听的任何事件。例如,按钮单击、文本输入键按下、鼠标悬停等。通常情况下,DOM事件是由某种用户交互触发的(鼠标事件、键盘事件、表单提交等)。但也可以通过编程方式触发DOM事件。

还有其他不被视为DOM事件的事件,例如:

  • AJAX响应(onreadystatechange
  • WebSocket消息接收(MessageEvent
  • LocalStorage数据更改(storage

1

Dom事件:这个事件在DOM组件上执行,以执行某些操作,如(事件/属性等)

Js事件:这些事件将在DOM对象的内容上执行操作,如(验证(条件),表达式,对Dom对象的方法等)


1

事件是一种系统,当执行某些操作时会记录并可以被处理。例如点击按钮、悬停在某个框上、选择某段文本,甚至是在某个频道接收新消息。

在js中,DOM事件是标准事件,对应于直接在DOM元素上执行的操作,例如用户单击某个东西时,将触发点击事件(直接对应于用户单击按钮),并调用附加到该元素的任何事件处理程序。 以下是事件列表: https://en.wikipedia.org/wiki/DOM_events 这些事件由浏览器识别和支持,并且可以本地触发。

许多js库通过这些DOM事件构建自己的事件系统。它们包装监听的元素,当事件被触发时,它们将事件传播到处理函数。

它们还可以通过让用户调用特定函数来支持DOM或任何其他对象上的自定义事件,例如

 obj.on("receive", function(){alert("Hello")})


 //Later
 obj.trigger("receive")

因此,无名函数(显示警报)将在触发接收事件时被调用。这里发生的是on函数将保持附加到对象的处理程序列表,而触发函数将调用每个处理程序并使用任何必需的数据调用它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接