DOM事件流

 

  1. 事件捕获:简单来说就是在多重嵌套的Dom节点中,寻找事件目标
  2. 事件冒泡:找到事件目标后,再一层层向外影响
  3. 事件对象(e): 侦听函数的形参,系统自动创建,不需要我们传递。包含当前事件的一系列数据
    1. e.target:返回事件触发对象     this  :返回的是绑定事件的对象 ;target点击哪个元素,就触发哪个,this哪个元素绑定了(点击)事件就返回哪个元素  如绑定ul点击li
    2. e.type :返回事件类型,不带on
    3. e.preventDafault()阻止默认行为,如不让a连接跳转。  return false也可以阻止事件
    4. e.stopPropagation()   阻止冒泡 ;在ie6-8使用  e.cancelBubble=true 取消冒泡
  4. 事件代理(委托、委派):不是每个子节点单独设置事件监听器。而是把监听器设置在父节点上,然后利用冒泡原理影响设置每个子节点
    1. 案例:给ul点击事件,然后利用事件对象的target来找到当前点击的li,因为点击li,事件冒泡到ul上,ui有注册事件,就会触发事件监听器。不需要为每个li挂载点击事件,只操作一次dom,提高了程序的性能

 

  1. addEventListener的第三个参数为true,则说明在捕获阶段触发,false则在冒泡阶段触发 ,默认false
  2. 在实际开发中,很少使用事件捕获,更关注冒泡;onblur、onfocus、onmouseenter、onmouseleave没有冒泡

 

 

posted @ 2020-09-10 15:59  浪波激泥  阅读(166)  评论(0编辑  收藏  举报