Event对象中的target属性和currentTarget属性的区别

  先上结论:

  Event.target:触发事件的元素;

  Event.currentTarget:事件绑定的元素;

  

  通过下面的例子来理解这两个属性的区别:

  使用Event.target属性的例子:(我在<body>和<button>上都绑定了click事件)

 1 <body onclick="mouseEvent1()">
 2     <button onclick="mouseEvent2()">点我</button>
 3     <script type="text/JavaScript">
 4         function mouseEvent1() {
 5             console.log("body触发的");
 6             console.log(event.target);
 7         }
 8         function mouseEvent2() {
 9             console.log("button触发的");
10             console.log(event.target);
11         }
12     </script>
13 </body>

  因为<button>在<body>中,所以点击<button>的同时也相当于点击了<body>(个人理解),触发<button>点击事件的同时也触发了<body>的点击事件。

  运行效果如下:

  

  我们点击<button>,返回的元素都是<button>元素。

  接下来我们把所有target换成currentTarget:

 1 <body onclick="mouseEvent1()">
 2     <button onclick="mouseEvent2()">点我</button>
 3     <script type="text/JavaScript">
 4         function mouseEvent1() {
 5             console.log("body触发的");
 6             console.log(event.currentTarget);
 7         }
 8         function mouseEvent2() {
 9             console.log("button触发的");
10             console.log(event.currentTarget);
11         }
12     </script>
13 </body>

  运行效果如下:

  

  点击<button>,返回了<button>元素和<body>元素。

原文地址:https://www.cnblogs.com/cwsb/p/10373694.html

时间: 2024-08-12 06:20:46

Event对象中的target属性和currentTarget属性的区别的相关文章

JS:event对象下的target属性和取消冒泡事件

1.target 通过获取DOM元素 var box = document.getElementById("box"); document.box.onclick = function(){  alert(123);//123 } event对象下的target方法 :获取事件的目标,不用document.getElementById("box")即可获取目标; //W3C下 document.onclick = function(evt){ var e = evt

event对象中 target和currentTarget 属性的区别。

首先本质区别是: event.target返回触发事件的元素 event.currentTarget返回绑定事件的元素 ????举个例子: 1 <ul id="ul">ul 2 <li>li<a href="">a</a></li> 3 <li>li<a href="">a</a></li> 4 <li>li<a href

event对象中 target和currentTarget 属性的区别

来自:https://www.cnblogs.com/yewenxiang/p/6171411.html 首先本质区别是: event.target返回触发事件的元素 event.currentTarget返回绑定事件的元素 ????举个例子: 1 <ul id="ul">ul 2 <li>li<a href="">a</a></li> 3 <li>li<a href="&quo

【ASP.NET】DataContract序列化,反序列化对象中包含用接口声明的属性时的处理方法

为此对象添加KnownType属性(Attribute).类型为用接口声明的属性(Property)的所有可能类型. 示例如下: 1 public interface IKey 2 { 3 [DataMember] 4 int Id { get; set; } 5 6 [DataMember] 7 string Name { get; set; } 8 } 9 10 [DataContract] 11 public abstract class KeyBase : IKey 12 { 13 [D

event对象中offsetX,clientX,pageX,screenX的区别

1.offsetXoffset意为偏移量,是事件对象距左上角为参考原点的距离.以元素盒子模型的内容区域的左上角为参考点.不包括border.2.clientX事件对象相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条3.pageX事件对象相对于整个文档的坐标以像素为单位.4.screenX事件对象相对于设备屏幕的左上角的坐标,当改变屏幕的分辨率的时候,坐标会随之改变. 以上除了screenX/Y以设备像素为单位,其他都是以css像素为单位下面以一个实例来解释说明 <!

Lua-面向对象中函数使用时冒号(:)和点(.)的区别

先来看一段简单的代码: local Animal = {} function Animal:Eat( food ) print("Animal:Eat", self, food) end function Animal.Sleep( time ) print("Animal.Sleep", self, time) end Animal:Eat("grass") Animal.Eat("grass") Animal:Sleep(

Day28:Event对象、队列、multiprocessing模块

一.Event对象 线程的一个关键特性是每个线程都是独立运行且状态不可预测.如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就 会变得非常棘手.为了解决这些问题,我们需要使用threading库中的Event对象. 对象包含一个可由线程设置的信号标志,它允许线程等待某些事件的发生.在初始情况下,Event对象中的信号标志被设置为假.如果有线程等待一个Event对象,而这个Event对象的标志为假,那么这个线程将会被一直阻塞直至该标志为真.一个线程如果将一个E

e.target与e.currentTarget的区别

原文摘自:https://www.jianshu.com/p/1dd668ccc97a 不必记什么时候e.currentTarget和e.target相等,什么时候不等,理解两者的究竟指向的是谁即可. e.target 指向触发事件监听的对象. e.currentTarget 指向添加监听事件的对象. MDN中对target的解释为,一个触发事件的对象的引用, 当事件处理程序在事件的冒泡或捕获阶段被调用时. 而对于currentTarget,它指的是当事件遍历DOM时,标识事件的当前目标.它总是

图解Js event对象offsetX, clientX, pageX, screenX, layerX, x区别

通过 3 张图和 1 张表格,轻松区别 JavaScript Event 对象中的offsetX, clientX, pageX, screenX, layerX, x等属性. 一.测试代码如下: <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset="utf-8" /> <title>Javascript</title> <st