JQuery中live()、delegate()、on()事件都能给新增元素绑定事件,原理就是用了事件委托。

实例:

给id为div的元素绑定一个click委托,如果冒泡上来的元素是P元素就会执行alert("xxx");

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="div"><p>11111</p><p>2222</p>
</div>
<button id="btn">xxxx</button>
<script>document.getElementById("div").addEventListener("click",function(e){if(e.target.nodeName=="P"){alert("xxx")}})document.getElementById("btn").οnclick=function(){var p = document.createElement("p");p.innerHTML="333";document.getElementById("xx").appendChild(p);}
</script>
</body>
</html>

冒泡方式分为2种,一种是由子元素向上冒泡,一种是由父元素向下冒泡

在使用addEventListeners的时候有第三个参数true和flase;默认是flase,由子元素向上冒泡

当我们设置为true的时候就会由父元素向下冒泡

实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="id1" style="width:200px; height:200px; position:absolute; top:100px; left:100px; background-color:blue; z-index:4"><div id="id2" style="width:100px; height:100px; top:20px; left:70px; background-color:green; "></div>
</div>
<script>document.getElementById("id1").addEventListener('click',function(){console.log("id1");},true)document.getElementById("id2").addEventListener('click',function(){console.log("id2");},true)
</script>
</body>
</html>

js委托事件-addEventListeners(冒泡方向)相关推荐

  1. JS 哪些事件支持冒泡

  2. javascript(JS) 0基础快速入门 (七)(事件的冒泡、委托和绑定)

    事件的冒泡 所谓冒泡指的就是事件的向上传导 当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发 类似于 给一个盒子绑定了鼠标点击事件,当点击了盒子后,该鼠标点击事件会一直往上触发, 如果这盒子 ...

  3. JS中的事件委托/事件代理详解

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...

  4. js事件委托(事件代理)

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...

  5. js原生事件委托写法,jquery事件委托写法

    什么是事件委托: 事件委托--给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件.(不理解冒泡的可以去百度下) 定义: 利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托. ...

  6. js事件委托(事件代理)的原理以及优缺点

    js事件委托/事件代理的原理以及优缺点 什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上 ...

  7. JS的事件监听与委托机制

    JS的事件监听机制 小故事: 很久以前有个叫Netscape的姑娘,她制订了Javascript的一套事件驱动机制(即事件捕获) 后来又有一个叫"IE"的小子,这孩子比较傲气,他认 ...

  8. JS的事件对象和事件冒泡

    2019独角兽企业重金招聘Python工程师标准>>> 1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象 ...

  9. js,jq.事件代理(事件委托)复习。

    <ul id = "lists"> <li>列表1</li> <li>列表2</li> <li>列表3< ...

最新文章

  1. 一机玩转docker之十:创建及使用ssh镜像
  2. okhttp连接池_OkHttp配置HTTPS访问+服务器部署
  3. kubernetes学习笔记之七:Ingress-nginx部署使用
  4. linux mp4box安装,mp4box安装备忘
  5. azure夜校培训第6场 3月22日 18:00---MYSQL
  6. 配置Linux之间SSH互信连接
  7. Linux服务器运行环境搭建(四)——Tomcat安装
  8. 计算机音乐因为我刚好遇见你,因为我刚好遇见你歌曲
  9. 域名与服务器如何绑定?
  10. 微信小程序车牌号组件,车牌号键盘,兼容新能源号牌
  11. C++动态分配new(C++ primer,P320)
  12. 10G光模块系列:10G 80公里(KM)光模块有哪些-易飞扬
  13. 安卓自定义View画钟实现转动
  14. 【Lua从青铜到王者基础篇】第一篇:Lua初始教程和环境安装
  15. 使用WG-8010 GPRS通讯模块
  16. 字符串题目:重新排列字符串
  17. gentoo安装全过程
  18. d3js 实现水球图
  19. js生产13位条形码
  20. Mybatis的插件分页原理

热门文章

  1. 延长线段ab到c的画法有几种_终于有人把趋势线的正确画法和错误画法讲透彻了,字字精华,原来大多数人都画错了...
  2. matlab软件介绍_活动回顾 | 您要的MATLAB课堂总结上线啦!
  3. 怎么查看linux是不是as7u4,Linux下搭建Android开发环境
  4. mysql为查询结果字段赋默认值
  5. php的Traits属性以及基本用法
  6. http_build_query的用法
  7. SSY and JLBD 题解
  8. Android移动开发之【Android实战项目】DAY2-使用Fragment实现底部菜单栏
  9. ppct各代表什么_开关背面L、L1、L2各代表什么?火线,零线,地线怎样接?
  10. python跟php如何共用mysql_Python 3 多个函数共用一个mysql连接