事件,事件冒泡和事件捕获

1.事件

浏览器客户端上客户触发的行为都称为事件

所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发。

通过obj.事件名=function(){}

事件名:onmouseover onmouseout onmousedown onmousemove onmouseup

Onclick  onchange onfocus onblur 等等

当用户触发一个事件时,浏览器的所有详细信息都存在一个叫event的对象上。

我们把他叫事件对象

所有事件在绑定方法的时候,天生自带一个参数就叫event。

鼠标的坐标

  Event.clientX

  Event.ClientY

Event 的兼容性

在chrome下 event是undefined 在Ie低版本下是null,火狐下会报错

document.onclick=function(e){

var e=e||window.event

}

2.  事件冒泡

什么叫事件冒泡

当给父子元素的同一事件绑定方法时,触发了子元素身上的事件,执行完毕之后,也会触发父级元素的相同事件,这种传播机制叫事件冒泡。

取消事件冒泡

Event对象有个属性叫cancelBubble默认值是false 改成true就取消当前事件冒泡

2.     事件捕获

给一个元素绑定事件,普通写法是

obj.onclick=function(){} 这就相当于给obj的onclick属性赋值是一个道理。

obj.onclick=function(){}

这种写法有一点不好,后者会将前者覆盖掉。

事件绑定的第二种写法

标准浏览器用 addEventListener()这个方法

Ie低版本用attachEvent()这个方法

addEventListener(参数1,参数2,参数3)

参数1 是事件名事件名不能带on

参数2 事件函数

参数3 布尔值,代表捕获不捕获默认是false 不捕获但是冒泡。

3事件捕获

1.        ie低版本没有捕获

2.        普通事件绑定写法没有捕获

事件捕获

给父子元素用addEventListener()绑定同一个事件时,当触发子元素身上的事件,会先触发父元素,然后在传递给子元素,这种传播机制叫事件捕获。

attachEvent()和addEventListener()二者区别

1.        attachEvent只用在iE8以下,addEventListener()适合标准浏览器

2.        attachEvent的事件名带on 而addEventListener事件名不带on

3.        attachEvent函数里面的this是window,而addEventListener函数里面的this是当前元素对象

attachEvent只有冒泡没有捕获addEventListener有冒泡也有捕获

原文地址:https://www.cnblogs.com/Shinigami/p/10054696.html

时间: 2024-08-01 15:37:20

事件,事件冒泡和事件捕获的相关文章

position布局影响点击事件以及冒泡获取事件目标

在编写功能时总是会出现很多意想不到的问题,现在就讲讲我遇到的两个问题,通过举一个相似的例子来解说. <1> 元素互相独立,不存在包含于被包含 选择城市的按钮,为它绑定点击事件,点击后就弹出城市列表层,城市列表层设置了position与z-index的值来进行布局,然后再点击选择城市按钮,点击事件就不起作用了,反而是城市列表层的点击事件起作用,这说明只有显示在最上面的一层绑定的事件可以起作用,即使最上面的一层没有全部盖住下面的内容,下面的内容绑定的事件也不起作用,所以要想让选择城市按钮绑定的点击

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

(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开

js 事件冒泡和事件捕获

(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开

javascript中的事件冒泡、事件捕获和事件执行顺序

谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有着相当大的影响.这两种事件流分别是捕获和冒泡.和许多Web技术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选择实现了捕获事件流,微软则实现了冒泡事件流.幸运的是,W3C决定组合使用这两种方法,并且大多数新浏览器都遵循这两种事件流方式. 1事件传播--冒泡与捕

JavaScript之事件冒泡和事件捕获详细介绍

怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别,有需要的朋友可以参考一下 (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕获型事件

js之事件冒泡和事件捕获介绍

链接:http://www.jb51.net/article/42492.htm (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. (2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定). (3)DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生.两种事件流会触及DOM中的所有对象,从docu

事件冒泡及事件捕获详解

(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开

js之事件冒泡和事件捕获详细介绍(转)

事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别,有需要的朋友可以参考一下 (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕

js之事件冒泡和事件捕获

今天看到阿里的一道面试题: 如果给一个元素绑定了4个事件处理(用addEventListener),其中两个是capture, 两个冒泡,那么触发顺序是什么? 看完之后开始找答案,然后写个栗子测试了一下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head

冒泡型事件、捕获型事件

冒泡型事件的基本思想是.事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. <html>        <head>            <title></title>     </head>         <body onclick="theClick()">         <div onclick="theClick()">点击</di