js事件冒泡和事件捕获的详细介绍

(1)冒泡事件:事件是从最具体的事件目标最具体的事件的顺序触发(文档对象)。

ie 5.5

ie 6

Mozilla 1

(2)捕获事件(事件捕获):事件从最不精确的对象(文档对象)开始,然后到达最精确的(或在窗口级别),但它们必须由开发人员指定。

(3)DOM事件流:同时支持两个事件模型:捕获事件和冒泡事件,但捕获事件首先发生。两个事件流将接触DOM中的所有对象,从文档对象开始,以文档对象结束。

DOM事件模型最独特的特性是文本节点也触发事件(不在IE中)。

支持W3C标准的浏览器使用addEventListener(事件、FN、useCapture)方法添加事件。在基地的第三个参数是useCapture,这是布尔值,这是用来设置事件时执行的事件或事件发生时捕获的气泡,W3C的浏览器不兼容(IE)和attachevent()方法,这个方法有没有相关的设置,但是默认的IE事件模型中的事件的实施,这是useCapture等于虚假执行时,所以在处理事件设置useCapture假是相对安全的,可以实现兼容的浏览器的影响。



事件捕获阶段:事件从顶级标签开始向下看,直到事件目标(目标)被捕获为止。
事件冒泡阶段:事件从事件目标(目标)开始,直到页面的顶级标签冒泡为止。

假设一个元素,div,有一个较低的元素,P.

元素

这两个元素绑定到单击事件。如果用户单击p,它会触发div和p上的单击事件,应该首先执行这两个事件处理程序中的哪一个事件的顺序是什么

两模型
以前,Netscape和微软是不同的实现。

在Netscape中,首先触发div,称为事件捕获。

在微软中,P首先被触发,称为事件泡沫。

这两个事件处理顺序刚好是opposite.ie仅支持事件冒泡,火狐,Opera 7,和Konqueror的支持,和Opera和iCab旧版本不支持由两。

事件捕获
当您使用事件捕获时,父元素首先触发,分段元素被触发,也就是说,div首先触发,然后P触发器。

事件的事件
当您使用事件冒泡时,首先触发分段元素,父元素被触发,也就是P首先触发,然后div触发。

W3C模型
W3C模型是为了中和两者。在W3C模型,当任何事件发生的时候,我们开始从顶层捕获事件到事件触发到事件源元素。然后,事件冒泡的事件源的文件直到达到。

程序员可以选择事件捕获或绑定事件,是结合事件通过addEventListener函数,它有三个参数,第三个参数,如果是真的,说的事件捕获,如果为假,事件冒泡的说。

ele.addeventlistener(听到咔哒声,dosomething2,真的)

真实的捕捉

假=泡沫

传统绑定事件模式
在支持W3C DOM的浏览器中,像这样的一般绑定事件是一个事件冒泡的方法。

ele.onclick = dosomething2

IE浏览器
正如上面提到的,即只支持事件冒泡和不支持事件捕获,也不支持addEventListener函数。它不使用第三个参数来表示气泡或捕获。它提供了一个功能attachevent。

ele.attachevent(onclick

附:事件冒泡(过程):事件从目标(事件。srcelement | |事件。目标)和气泡的文档到文档。

事件的传播是可以预防的:
在W3C里面,使用()方法
集cancelbubble =真正的IE下;
在捕获过程中,里面();之后,在后泡沫的过程不会发生。
三.阻止事件的默认行为,如单击后跳转。
在W3C,preventDefault()方法;
集window.event.returnvalue =假IE下;
4。哇,我终于写完了。我测试写作的数量,并不是所有的事件都会冒泡,例如:模糊、焦点、加载和卸载。