JavaScript事件处理的方式(三种)(2)

<!doctype html>   <html lang="en">   <head>    <meta charset="UTF-">    <title>Document</title>    <style>    #p{width:px;height:px;border:px solid black;}    #c{width:px;height:px;border:px solid red;}    </style>   </head>   <body>    <div>    i am    <div>i like </div>    </div>    <script>    var p = document.getElementById('p');      var c = document.getElementById('c');    c.addEventListener('click', function () {    alert('子节点捕获')    }, true);    c.addEventListener('click', function () {    alert('子节点冒泡')    }, false);    p.addEventListener('click', function () {    alert('父节点捕获')    }, true);    p.addEventListener('click', function () {    alert('父节点冒泡')    }, false);    </script>   </body> </html>

运行上面的代码,点击子元素的时候,我们会发现,执行的先后顺序是:父节点捕获--子节点捕获--子节点冒泡--父节点冒泡。从这个例子中,大家也就明白了,另外,DOM2级事件规定事件包括三个阶段:

1、事件捕获阶段;

2、处于目标阶段;

3、事件冒泡阶段。

首先是捕获,然后处于目标阶段(即来到事件的发出位置),最后才是冒泡,不科学的是,居然木有DOM1级事件处理程序,大家注意下,别闹出笑话了!

五、补充

1. IE事件处理程序也对应有两个方法:attachEvent()添加事件,detachEvent()删除事件,这两个方法接收相同的两个参数:事件处理程序名称与事处理函数。这里为什么没有布尔值呢?因为ie8以及更早的版本只支持事件冒泡,所以最后一个参数默认的相当于false来处理!(支持IE事件处理程序的浏览器有IE,opera)。

2. 事件对象是用来记录一些事件发生时的相关信息的对象,但事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁!

以上所述是小编给大家介绍的JavaScript事件处理的方式(三种),希望对大家有所帮助!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgyyfp.html