JavaScript事件:事件处理模型(冒泡、捕获)



(一)事件处理模型---事件冒泡、捕获

(1)事件冒泡

24 <body>
25     <div class="warpper">
26         <div class="content">
27             <div class="box">
28
29             </div>
30         </div>
31     </div>
32 <script type="text/javascript">
33     var warpper = document.getElementsByClassName(‘warpper‘)[0];
34     var content = document.getElementsByClassName(‘content‘)[0];
35     var box = document.getElementsByClassName(‘box‘)[0];
36
37     warpper.addEventListener(‘click‘,function(){
38         console.log("warpper-red");
39     },false)
40     content.addEventListener(‘click‘,function(){
41         console.log(‘content-yellow‘);
42     },false)
43     box.addEventListener(‘click‘,function(){
44         console.log(‘box-bule‘);
45     },false)
46
47 </script>
48
49 </body>

如下:点击蓝色区域,三个div都会相应click事件



(2)事件捕获

1     warpper.addEventListener(‘click‘,function(){
2         console.log("warpper-red");
3     },true)
4     content.addEventListener(‘click‘,function(){
5         console.log(‘content-yellow‘);
6     },true)
7     box.addEventListener(‘click‘,function(){
8         console.log(‘box-bule‘);
9     },true)

点击蓝色区域,会先父级元素捕获到,然后在子元素;



(3)触发顺序:先捕获 后冒泡

 1     warpper.addEventListener(‘click‘,function(){
 2         console.log("warpper-red,Bubble");
 3     },false)
 4     content.addEventListener(‘click‘,function(){
 5         console.log(‘content-yellow,Bubble‘);
 6     },false)
 7     box.addEventListener(‘click‘,function(){
 8         console.log(‘box-bule,Bubble‘);
 9     },false)
10
11     warpper.addEventListener(‘click‘,function(){
12         console.log("warpper-red");
13     },true)
14     content.addEventListener(‘click‘,function(){
15         console.log(‘content-yellow‘);
16     },true)
17     box.addEventListener(‘click‘,function(){
18         console.log(‘box-bule‘);
19     },true)


时间: 2024-09-30 08:41:34

JavaScript事件:事件处理模型(冒泡、捕获)的相关文章

定时器运行原理 &amp;&amp; javascript事件循环模型

定时器是我们经常使用的一个异步函数,它的用处十分广泛,比如图片轮播.各种小的动画.延时操作等等:定时器函数只有两个setTimeout.setInterval,这两个工作原理相同,唯一的区别是:setTimeout只执行一次,setInterval循环执行:通过以下实例看看对定时器原理掌握程度: 定时器3个实例 首先声明这三个实例输出皆不同,先思考输出结果,以及为何不同 实例一: console.log('test1') for(var i=0;i<10;i++){ setTimeout(()=

Javascript事件传播(冒泡机制) (摘自 博客园 萍水相逢)

今天在使用javascript弹出菜单时遇到了问题,搞了一晌终于算有点眉目了.和大家一起分享下.有什么不对的地方希望大家多多留言评论. 定义:JavaSciprt事件中有两个很重要的特性:事件冒泡 以及目标元素 . 事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层. 目标元素: 任何一个事件的目标元素都是最开始的那个元素,并且它在我们的元素对象中以属性的形

Javascript事件模型系列(一)事件及事件的三种模型

转载: http://www.cnblogs.com/lvdabao/p/3265870.html 一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加百度的实习生面试,被问到事件模型,当时被问的一头雾水,平时敲onclick敲的挺爽,却没有关注到事件模型的整体概念.这个周末难得清闲,决定就javascript中的事件模型写个系列,算是对知识点的一个

javaScript事件(一)事件流

一.事件 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字.事件是javaScript和DOM之间的桥梁.你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应.典型的例子有:页面加载完毕触发load事件:用户单击元素,触发click事件. 二.事件流 1.事件流感性认识问题:单击页面元素,什么样的元素能感应到这样一个事件?答案:单击元素的同时,也单击了元素的容器元素,甚至整个页面.例子:有三个同心圆, 给每个圆添

javaScript事件(一)

一.事件 事件是javaScript和DOM之间的桥梁. 你若触发,我便执行——事件发生,调用它的处理函数执行相应的JavaScript代码给出响应. 典型的例子有:页面加载完毕触发load事件:用户单击元素,触发click事件. 二.事件流 1.事件流感性认识 问题:单击页面元素,什么样的元素能感应到这样一个事件? 答案:单击元素的同时,也单击了元素的容器元素,甚至整个页面. 例子:有三个同心圆, 给每个圆添加对应的事件处理函数,弹出对应的文字.单击最里面的圆,同时也单击了外面的圆,所以外面圆

javaScript事件流是什么?

一.事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间. 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字. 事件是javaScript和DOM之间交互的桥梁. 你若触发,我便执行--事件发生,调用它的处理函数执行相应的JavaScript代码给出响应. 典型的例子有:页面加载完毕触发load事件:用户单击元素,触发click事件. 二.事件流 事件流描述的是从页面中接收事件的顺序. 1.事件流感性认识 问题:单击页面元素,什么样的元素能感应到这

【repost】JavaScript 事件模型 事件处理机制

什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击.鼠标经过某个特定元素或按下键盘上的某些按键.事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小. 通过使用 JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应. 今天的事件 在漫长的演变史,我们已经告

JavaScript事件——冒泡、捕获

本节要点:1.干预系统的事件处理机制(一)DOM事件流 (二)停止事件冒泡 (三)阻止事件的默认行为 1.干预系统的事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的.当一个HTML元素上产生一个事件时,该事件会在DOM树中元素节点与根节点之间按特定的顺序传播,路径所经过的节点都会收到该事件,这个传播过程就是DOM事件流. DOM事件标准定义了两种事件流,分别是捕获事件和冒泡事件. 1.冒泡事件流 默认情况下,事件使用冒泡事件流.当事件(例如单击事

整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流.都是流的一种生动体现.用术语说流是对输入输出设备的抽象.以程序的角度说,流是具有方向的数据. 事件流分事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其