DOM事件和事件委托

224 阅读2分钟

1.导火索

代码演示

<div class = 爷爷>
 <div class = 爸爸>
   <div class = 儿子>
     文字
    </div>
  </div>
</div>

分别给三个div 添加事件监听函数 fn1-fn2-fn3

第一个问题:点击文字,算点击了谁

答案:都算。

第二个问题:点击文字,先调用那个函数

答案:都行。

IE5认为先调用fn3,网景认为先调用fn1矛盾产生了~

2.捕获和冒泡

从外向里找监听函数 叫做事件捕获

从内向外 找监听函数 叫做 事件冒泡

2002年 “和事佬” W3C 颁布标准 同时支持两种方式用函数。首先,从外到里,再从里向外。如果有监听函数就调用,提供事件信息,没有就跳过。

优化代码:就是将重复的代码用函数表示

用图说话

3.事件委托

“大中介”

好处

  • 省监听的内存

  • 可以监听动态元素

举个栗子: 假如你要去西溪阿里工作了,但是你的住处还没有着落,自己找房子比较浪费时间,而且没有什么比较优质的房源,此时你为了更好更快的找到自己心仪的住处,果断拿起电话打给了小花(小花是一名房屋中介的漂亮小姐姐),经过一番房源的筛选,为你找到了合适的房子

实际用处

(1)给n个按钮添加点击事件

监听这N个按钮的祖宗,等到冒泡的时候判断target是不是这N个里的其中一个。

(2)监听目前还不存在的元素点击事件

监听祖宗,等点击的时候看看是不是我想要的那个。

总结:

本文主要浅析了 冒泡和捕获的定义,以及用途,以及事件委托的概念。