这个涉及到了冒泡与捕获,冒泡和捕获:

----在页面中点击一个元素,事件是从这个元素的祖先元素中逐层传递下来的,这个阶段为事件的捕获阶段
----当事件传递到这个元素之后,又会把事件逐成传递回去,直到根元素为止,这个阶段是事件的冒泡阶段。

直接上例子

HTML
<div id="a" style="width: 400px;height: 400px;background-color: rgb(165, 146, 146);">a<div id="b" style="width: 300px;height: 300px;background-color: rgb(233, 76, 76);">b<div id="c" style="width: 200px;height: 200px;background-color: rgb(185, 127, 127);">c<div id="d" style="width: 100px;height: 100px;background-color: rgb(90, 81, 81);">d</div></div></div>
</div>
addEventListener(事件,事件触发函数,捕获/冒泡)---当第三个参数-true:捕获,false/空:冒泡冒泡代码 JSdocument.getElementById('a').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);console.log("--------------------")});    document.getElementById('b').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);});    document.getElementById('c').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);});    document.getElementById('d').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);});
捕获代码 JSdocument.getElementById('a').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);console.log("--------------------")},true);    document.getElementById('b').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);},true);    document.getElementById('c').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);},true);    document.getElementById('d').addEventListener('click', function(e) {console.log('点击的是:' + e.target.id + '绑定的是:' + e.currentTarget.id);},true);

注:我只点击了d方块一次!

1、冒泡阶段运行结果:

2、捕获阶段运行结果:

分析:

根据输出的‘-----’的位置可以看出,
~冒泡阶段时:点击事件(顺序)由点击元素向根元素执行,此时的currentTarget由d==>a
~捕获阶段时:点击事件(顺序)由点击元素的根元素向点击元素执行currentTarget由a==>d
说白了: target就是点击的那个元素,currentTarget是绑定事件的元素

冒泡与捕获,target与currenTarget的区别相关推荐

  1. 16.target和currenTarget的区别?

    target:就是事件源 currentTarget:当前事件源(当前触发到哪个事件元素,那么这个事件元素就是事件源),跟this一样. <!doctype html> <html ...

  2. js中的target与currentTarget的区别转

    关于js中target与currentTarget的区别的关键在于他们所处在的事件流的阶段是不一样的,target处于事件流的目标阶段,currentTarget处理事件流的捕获.处于目标阶段和冒泡阶 ...

  3. 事件模型、事件流(冒泡与捕获)、事件代理

    本文原链接:https://www.cnblogs.com/hngdlxy143/p/9068282.html https://www.jb51.net/article/139997.htm 事件模型 ...

  4. JavaScript 详说事件机制之冒泡、捕获、传播、委托

    DOM事件流(event  flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...

  5. vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符

    事件传递 ----冒泡和捕获 DOM事件标准定义了两种事件流,这两种事件流分别是捕获和冒泡. 和许多Web技 术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选 ...

  6. JS 中的事件冒泡与捕获

    本文来源:渔人 原文地址:http://yuren.space/blog/2016/10/16/事件冒泡与捕获/ 刚接触 JS 的那个时候,啥也不懂,只想着如何利用 Google.百度到的函数来解决实 ...

  7. 【原创翻译】生动详细解释javascript的冒泡和捕获,包懂包会

    前言:虽然精通jquery,但对它的原型javascript却不是很了解,最近在学习javascript中遇到了一些困难,比如冒泡和捕获,很多次被提到,但又不知究竟应用在何处.找到了一些好文章解惑,在 ...

  8. 事件冒泡、捕获?如何阻止

    事件冒泡 <style>div{color: white;font-size: 30px;}.content{width: 400px;height: 400px;background-c ...

  9. javascript的冒泡与捕获、定时器

    javascript的冒泡与捕获.定时器 事件 1.绑定事件的区别 2.移除绑定事件的方式及区别和兼容代码 3.事件的三个阶段 4.事件冒泡 5.为同-一个元素绑定多个不同的事件,指向的是同-一个事件 ...

最新文章

  1. java运行环境jdk的安装和环境变量的配置教程
  2. 【CentOS】NFS服务器的安装与配置
  3. ElasticSearch之基于地理位置的搜索
  4. Python类对象的运算符add重载
  5. System.Timers.Timer 与 System.Threading.Timer 小间隔
  6. 第三届Apache Flink 极客挑战赛暨AAIG CUP电商推荐“抱大腿”攻击识别
  7. Linux 脚本获取当前路径父路径及常用命令
  8. Vue学习笔记(利用网易云API实现音乐播放器 实例)
  9. Rockchip BT.656 TX 和 BT.1120 TX 开发指南
  10. net start mysql启动常见问题
  11. 什么是十六进制法_十六进制的定义 十六进制的转换介绍【详解】
  12. 高校房产管理系统有哪些模块?
  13. 掌握el-table的formatter方法,提升数据展示效果
  14. 为了不当接盘侠,这位程序员做了一个识别“特殊”职业女性的系统
  15. 马斯克中止推特收购,分手费10亿美元
  16. 硬件-5-长虹电视55A1U
  17. VPS2105 替代金升阳模块 无光耦 DCDC 电源控制器 4-100V 小体积
  18. java sop_JAVA开发环境搭建SOP.doc
  19. Windows下安装NTP服务器——搭建时间同步服务器
  20. [实操记录]Centos8忘记密码了怎么办

热门文章

  1. maven 安装jar 及 下载jar地址
  2. pure virtual method called terminate called without an active exception Abor
  3. @Cacheable 设置缓存过期时间
  4. Unable to start activity ComponentInfo 解决方法
  5. 路由桥接 新增路由 扩大wify 一个网线两个wify
  6. 这是一个个人的“云图库”
  7. (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80)
  8. 阿里巴巴在 Envoy Gateway 的演进历程浅析
  9. 读《终身成长》知 我命由我不由天 馁
  10. 计算机专业名称bios翻译,电脑BIOS中英文对照翻译有哪些?