首页 > 试题广场 >

事件捕获与事件冒泡的区别是什么?如何阻止事件的默认行为,以及

[问答题]
事件捕获与事件冒泡的区别是什么?如何阻止事件的默认行为,以及如何阻止事件冒泡?
事件捕获:是一种自顶向下的事件类型,从DOM层次的顶端沿着子节点依次向下延伸,直到目标节点。
事件冒泡:和事件捕获正好相反,从目标节点开始沿着父节点逐层向上传播。
W3C中阻止事件默认行为:e.preventDefault()方法,阻止事件冒泡:e.stopPropogation()方法
IE中,阻止事件默认行为:event.returnValue=false ,阻止事件冒泡:event.cancelBubble=true

发表于 2019-03-20 15:06:04 回复(0)
事件冒泡,事件最开始由文档中嵌套层次最深的节点接收,然后逐级向上传播到较不具体的节点。(如div--body--html--document
事件捕获,文档中嵌套层次最深的节点最晚接收到事件。(如document--html--body--div
阻止事件默认行为preventDefault
阻止事件冒泡stopPropagation
发表于 2019-03-09 15:27:27 回复(0)

捕获型事件和冒泡型事件是相反的,从不精确的对象到最精准的对象。这种事件也称作自顶向下事件模型,因为它是从DOM层次的顶端开始向下延伸的。需要注意的是IE浏览器不支持这种类型事件,我们只需要了解即可。如果设置了捕获型事件,前面的例子会反向进行

阻止事件冒泡

DOM中提供stopPropagation()方法,但IE不支持,使用event对象在事件函数中调用就行.

IE中提供的是,cancelBubble属性,默认为false,当它设置为true时,就是阻止事件冒泡,也是用event对象在事件函数中调用.


阻止默认行为
DOM中提供preventDefault()方法来取消事件默认行为,但是只有当cancelable属性设置为true的事件,才可以使用preventDefault()来取消事件默认行为,使用event对象在事件函数中调用就行。
IE中提供的是returnValue属性,默认为true,当它设置为false时,就是取消事件默认行为,也是用event对象在事件函数中调用。

发表于 2019-01-22 11:43:22 回复(0)