HTML文档中事件、事件流及触发顺序是怎样的?

2026-05-27 04:112阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计678个文字,预计阅读时间需要3分钟。

HTML文档中事件、事件流及触发顺序是怎样的?

1. 首先我们来理解几个关键概念: - 事件 - 事件流 - 事件名称 - 事件处理函数/事件监听函数 - 也可能是老生常谈

2. 事件: - 用户或浏览器自身触发的动作

3. 事件流: - 事件发生的顺序和方式

HTML文档中事件、事件流及触发顺序是怎样的?

4. 事件名称: - 事件的具体类型,如点击、滚动等

5. 事件处理函数/事件监听函数: - 处理事件的具体代码块

1.首先我们来了解几个概念,“事件”,“事件流”,“事件名称”,“事件处理函数/事件监听函数,也许是“老生常谈”,知道的朋友可以越过。

  • 事件: 事件是用户自身或浏览器进行的特定行为。如:用户点击 也就是常用的click事件
  • 事件流:多个事件 按一定顺序触发 形成了事件流
  • 事件名称:如上面所讲的click就是事件名
  • 事件处理函数/事件监听函数(Dom的叫法)就是 事件触发后的处理函数,如obj.onclick=fn;函数fn就是事件处理函数
2.下面我们来了解一下历史,事件是dom的一部分 是在版本3中已经得到完整的说明,当进浏览器除ie(它有自己的事件模型),其他像netscape,safari,opera都基本上遵守dom的事件模型

3. 冒泡事件,其基本思想是事件从特定的事件目标向非特定的事件目标顺序触发。

先看如下代码:代码

<html>
<head>
<metawww.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
</head>
<bodyonclick="alert('body')">
<divonclick="alert('div');">
div
<inputid="Button1"onclick="alert('btn');"type="button"value="button"/>
</div>
</body>
</html>

点击 按钮 在ie中,依据我们对上面的了解,很容易写出答案了,没错!ie只有冒泡事件 所以 顺序为:button>>div>>body;

而在非ie浏览器如moz中 正如我们上面所说的 内嵌式事件 等价于addEventlistener(type,fn,false) 只从冒泡事件中 监听。

所以顺序也是 btn>>div>>body;


在addEventlistener(type,fn,true添加事件时)只监听 “捕获事件” 当第三个参数为false时 只监听 冒泡事件

我们看下面一个例子:

代码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="www.w3.org/1999/xhtml">
<head>
<metawww.cnblogs.com/niuniu

本文共计678个文字,预计阅读时间需要3分钟。

HTML文档中事件、事件流及触发顺序是怎样的?

1. 首先我们来理解几个关键概念: - 事件 - 事件流 - 事件名称 - 事件处理函数/事件监听函数 - 也可能是老生常谈

2. 事件: - 用户或浏览器自身触发的动作

3. 事件流: - 事件发生的顺序和方式

HTML文档中事件、事件流及触发顺序是怎样的?

4. 事件名称: - 事件的具体类型,如点击、滚动等

5. 事件处理函数/事件监听函数: - 处理事件的具体代码块

1.首先我们来了解几个概念,“事件”,“事件流”,“事件名称”,“事件处理函数/事件监听函数,也许是“老生常谈”,知道的朋友可以越过。

  • 事件: 事件是用户自身或浏览器进行的特定行为。如:用户点击 也就是常用的click事件
  • 事件流:多个事件 按一定顺序触发 形成了事件流
  • 事件名称:如上面所讲的click就是事件名
  • 事件处理函数/事件监听函数(Dom的叫法)就是 事件触发后的处理函数,如obj.onclick=fn;函数fn就是事件处理函数
2.下面我们来了解一下历史,事件是dom的一部分 是在版本3中已经得到完整的说明,当进浏览器除ie(它有自己的事件模型),其他像netscape,safari,opera都基本上遵守dom的事件模型

3. 冒泡事件,其基本思想是事件从特定的事件目标向非特定的事件目标顺序触发。

先看如下代码:代码

<html>
<head>
<metawww.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
</head>
<bodyonclick="alert('body')">
<divonclick="alert('div');">
div
<inputid="Button1"onclick="alert('btn');"type="button"value="button"/>
</div>
</body>
</html>

点击 按钮 在ie中,依据我们对上面的了解,很容易写出答案了,没错!ie只有冒泡事件 所以 顺序为:button>>div>>body;

而在非ie浏览器如moz中 正如我们上面所说的 内嵌式事件 等价于addEventlistener(type,fn,false) 只从冒泡事件中 监听。

所以顺序也是 btn>>div>>body;


在addEventlistener(type,fn,true添加事件时)只监听 “捕获事件” 当第三个参数为false时 只监听 冒泡事件

我们看下面一个例子:

代码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="www.w3.org/1999/xhtml">
<head>
<metawww.cnblogs.com/niuniu