DOM事件详解(一)

        将要介绍:

        1,添加事件的三种方式

        2,事件的重新绑定与删除

        3,事件流

        4,Event对象的属性与方法

目录

一,什么是事件?

二,DOM的事件分类

1,HTML处理事件

2,DOM0级事件

3,DOM2级事件

4,总结

5,事件的移除

三,鼠标事件

四,事件流

1,冒泡流

2,事件捕获流

五,Event事件对象

1,Event对象的三个常用属性

1.1 Event.currentTarget属性

1.2 Event.target属性

1.3 Event.type属性

2,Event对象的两个常用方法

2.1 Event.preventDefault()

2.2 Event.stopPropagation()


一,什么是事件?

        事件可以理解为:1,操作触发,比如按下开机键电脑就开机了;2,状态的变化,比如天黑了就要急着回家。

        浏览网页时常见时间触发行为有:鼠标点击,鼠标滚轮滚动,表单提交等。

二,DOM的事件分类

1,HTML处理事件

        指的是:在HTML代码中声明一个事件类型属性,该属性绑定到一个函数或者对象方法。onclick表示鼠标单击这个事件,将他绑定到事件demo应该这么写:οnclick="demo()"。

2,DOM0级事件

        指的是:获取节点对象,然后给这个节点对象添加事件类型属性,让这个属性去绑定一个函数或者对象方法。如果这个属性多次绑定不同的函数或者对象方法,只有最后一个生效。

3,DOM2级事件

        这种形式是使用:事件监听方法来实现,事件监听方法的名称为addEventListener(),这个方法是每个节点对象都具有的方法。他需要两个参数,addEventListener(事件类型,指定的方法)。

        另外还有一种写法,语法格式如下:

4,总结

         HTML事件,DOM0,DOM2是三种添加事件的方式。建议使用DOM2级事件。

5,事件的移除

        1,HTML事件直接删除代码就可以移除。

        2,DOM0级事件,让事件类型属性绑定到null即可。

        3,DOM2级事件使用方法removeEventListener()移除事件。细节如下:

三,鼠标事件

        下面这张图中就是所有的鼠标事件,当某个节点对象察觉到相应的鼠标动作,则会执行相关的事件。下面的鼠标事件一般作为:节点对象的属性,然后这个属性去绑定相应的函数或者对象方法。

        注意点:按下鼠标事件有两种:一种是click,他是DOM2级事件专用的。另一种是onclick,HTML事件和DOM0级使用,即使用的时候需要加上on这个前缀,比如:onclick,ondbclick。

        使用方法如下:

        鼠标事件大全: 

四,事件流

        指的是:当html元素嵌套时,如果每一个层级的元素都绑定了事件,那么这些事件的执行顺序就是事件流。

        事件流有两种:1,冒泡流;2,捕获流。

1,冒泡流

        IE提出的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。(不好理解,不用深究,看下图记住顺序就像)。

2,事件捕获流

        事件捕获流的思想是不太具体的DOM节点应该更早接收到事件,而最具体的节点应该最后接收到事件。(不好理解,不用深究,看下图记住顺序就像)。

        很明显,事件捕获流与事件冒泡流是相反的。但是我们应该关注的是:这种自发的去执行所有事件并不是我们想要的结果。

五,Event事件对象

        想要执行事件,第一步就是要知道:触发事件的条件是否满足。满足之后又该怎么办?现在介绍当事件触发条件满足之后js是怎么做的,比如:鼠标点击一个按钮之后,js该怎么做才能顺利地执行绑定的函数或者对象方法。

        实际上:当事件被感应到,会立即生成一个Event对象,并将这个对象作为参数,传递给事件监听函数。细节如下图:相应动作指的是鼠标单击

1,Event对象的三个常用属性

1.1 Event.currentTarget属性

        这个属性的属性值是一个字符串,内容为:触发当前事件的html元素代码。

        演示代码如下:

         结果如下:

1.2 Event.target属性

        指的是:存在事件流的时候,当前事件也许并不是由自身html元素感应到了事件发生,而是因为事件流自动的被执行了而已。target属性就指向的是最初事件触发时的html元素(或者叫做DOM元素)。

1.3 Event.type属性

        是一个字符串,记录的是:当前事件被哪种动作触发的,比如click,dbclick等。

2,Event对象的两个常用方法

2.1 Event.preventDefault()

        让某些会执行事件html元素不再自动发生。比如:超链接标签<a></a>,点击他会自动跳转页面,那么使用Event.preventDefault()方法之后,就不会自动跳转了。

2.2 Event.stopPropagation()

        存在事件流时,多个事件会自动执行,如果我们不打算让他自动执行,可以使用这个方法。下面的代码只会执行当前触发的事件,事件流之后的事件不会被执行。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值