事件委托,Event.target 与 Event.currentTarget

2023-12-01

In MDN Event.target 参考有一个关于实现事件委托的示例:

事件委托示例

// Assuming there is a 'list' variable containing an instance of an  
// HTML ul element.
function hide(e) {
    // Unless list items are separated by a margin, e.target should be  
    // different than e.currentTarget
    e.target.style.visibility = 'hidden';
}

list.addEventListener('click', hide, false);

// If some element (<li> element or a link within an <li> element for  
// instance) is clicked, it will disappear.
// It only requires a single listener to do that

示例中不清楚的部分

我在示例中不明白的是这个评论:

// Unless list items are separated by a margin, e.target should be  
// different than e.currentTarget

Question

如何保证金<li>元素之间存在差异Event.target and Event.currentTarget?


记住是什么让event.target不同于event.currentTarget如中所述MDN Event.currentTarget 参考:

我认为重点是,如果没有边距,那么就不可能直接点击ul自从li元素将完全填满其空间。

如果有is一个边距,那么至少会是possible单击ul, 在这种情况下event.target and event.currentTarget会是一样的。

function hide(e) {
    document.querySelector("pre").textContent += 'e.target = ' + e.target.nodeName + ", e.currentTarget = " + e.currentTarget.nodeName + "\n";
}

document.querySelector("#list").addEventListener('click', hide, false);
ul {
  border: 2px solid orange;
}
li {
  padding: 10px;
  color: blue;
  margin: 30px;
  border: 1px dashed blue;
}
<pre></pre>
<ul id="list">
  <li>click me
  <li>click me
  <li>click me
</ul>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

事件委托,Event.target 与 Event.currentTarget 的相关文章

  • 为什么 IE9+ 上的网络浏览器不支持 document.createEvent 以及如何修复它?

    我使用的是 Windows 8 Internet Explorer 10 Visual Studio 2013 这是 JavaScript 代码 function simulate element eventName var options
  • 为什么我的事件处理程序会导致“不是函数”错误,但可以在 Firebug 控制台中运行?

    使用JQuery 1 2 6 在Firefox 3和IE7上进行测试 我有一些非常基本的 JavaScript 代码来重新加载验证码图像 在我的 JS 文件中 我有 var Captcha count 0 Refresh function
  • 在 IE8 中使用 javascript __proto__

    你好 我在 javascript 中有这两个对象 var john firstname John lastname Smith var jane firstname Jane 这样做 jane proto john 我可以访问 Jane 的
  • Javascript“this”在 IE 中丢失上下文

    以下在 firefox safari chrome 中工作正常 在 IE 中 this 似乎在 handleEvent 函数中丢失上下文 警报的结果是 object Window 这不是我想要的 当从handleEvent 输出时 this
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • Javascript:使用 IIFE 和块语句之间的区别

    IIFE主要用于封装作用域 function let myVar 10 not global 但为什么不直接使用块语句呢 let myVar 10 also not global 除了范围封装之外 进一步使用 IIFE 是否还有其他好处 块
  • 多次训练brain.js?

    在第一次训练后 如何将新信息 仅新信息 而不是所有信息 因为这会花费太多性能 训练到我的用 Brain js 制作的神经网络 它有点粗糙 但您可以使用以下结构来实现 如果我们加入 2 个训练数据集 旧数据集与新数据集 然后重新训练keepN
  • CSS 内边框?

    我纯粹用 CSS 创建了左侧的按钮 它是一个div 中的一个div 然而 右侧的三个按钮是background属性于img标签 我这样做是为了按照以下说明模拟翻转效果here http kyleschaeffer com best prac
  • JS文件中的System.register是什么意思?

    在 Angular 2 中使用指令时 JS 文件中的 System register 是什么意思 我认为这个问题并不特定于 Angular2 中的指令 它是关于 ES6 TypeScript 和其他使用 SystemJS 的现代编译器的一般
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 如何在打字稿中使用外部js

    我通过 Typescript 代码生成 Angular JS 代码 在一种情况下 我需要将外部 JS 文件添加到我的打字稿文件中 并且需要访问 js 文件中的类 我像这样添加js文件
  • JQuery $.ajax() 在 java servlet 中发布数据

    我想将数据发送到 java servlet 进行处理 数据将具有可变长度并采用键 值对 A1984 1 A9873 5 A1674 2 A8724 1 A3574 3 A1165 5 数据不需要这样格式化 这就是我现在的方式 var sav
  • 此版本的 CLI 仅与 Angular 版本 5.0.0 或更高版本兼容错误

    我已经有 Angular 项目在 4 版本中运行 在安装新项目时 不幸的是我安装了 6 版本的 Angular cli 在以 4 版本运行的旧项目中运行 ngserve 命令时 这会引发错误 您的全局 Angular CLI 版本大于本地版
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • Safari 扩展将消息发送到特定选项卡

    有没有办法从全局页面发送消息到特定选项卡 我目前正在做的是 在创建选项卡时 注入的脚本会创建一个唯一的 ID 并将包含该编号的消息发送到全局页面 并且全局页面会保存该编号 如果全局页面需要发送一些数据到一个tab 即 tab 3 然后全局页
  • 使用
    元素作为 JavaScript 代码的输入。这是最好的方法吗?

    各位 显然 我是编码新手 所以最近完成了一些有关 HTML 和 Javascript 的 Lynda 课程后 我的简单 HTML 页面遇到了困难 基本上 我想要的是使用 JavaScript 进行基本计算 让用户使用 HTML 输入两个数字

随机推荐

  • 计算 R 中单词出现的次数

    是否有一个函数可以计算特定关键字在数据集中包含的次数 例如 如果dataset lt c corn cornmeal corn on the cob meal 计数将为 3 我们暂时假设您想要包含 corn 的元素的数量 length gr
  • 如何在 C# 中调用 Azure Rest API

    我是 C 世界的新手 我有一个项目 需要从 700 多个订阅中收集所有区域的 Azure 计算使用配额 我已经使用 PowerShell Get AzVMUsage 轻松完成了此操作 我必须使用 C 来完成 我想我需要使用 Rest API
  • Rmarkdown - Rmarkdown 中的 python 内联代码

    我正在将 Rmarkdown 与 python 一起使用 相当于什么Rpython 的内联代码 例如 在https rmarkdown rstudio com lesson 4 html我可以 r x 显示文本中 x 的值 但如果我这样做
  • EntityState.Deleted 不起作用,Remove(entity) 起作用吗?

    当我尝试读取记录 然后在同一事务中删除这些记录时 我一直在与 EF 作斗争 我最初使用 EntityState Deleted 方法 这会给出错误 操作失败 无法更改关系 因为一个或多个外键属性不可为空 当关系发生更改时 相关的外键属性将设
  • Java 8 Date API - 获取一个月中的总周数

    我有一个 Kotlin 函数来获取一个月中的总周数 Code fun getTotalWeeksInMonth instant Instant Int val calendar Calendar getInstance calendar t
  • 如何在 Visual Studio 中调试 Windows 服务?

    是否可以在 Visual Studio 中调试 Windows 服务 我用过类似的代码 System Diagnostics Debugger Break 但它给出了一些代码错误 例如 我收到两个事件错误 eventID 4096 VsJI
  • 为什么重新分配 Object.prototype 不起作用?

    为什么这不起作用 this one works as I expected when objSayHello Object prototype objSayHello function alert Hello from OBJECT pro
  • mysql 中的逗号分隔值和通配符

    我的数据库中有一个值 其中包含逗号分隔的数据 例如 11 223 343 123 我想获取数据 如果它与某个数字匹配 在本例中为数字 223 WHERE wp postmeta meta value IN 223 223 223 223 我
  • 如何从 qcombobox 获取 itemdata?

    当我单击 QtWidgets QPushButton 以显示 QtWidgets QComboBox 中的 itemData 时 出现问题 我用以下代码填充我的组合框 self comboBox addItem Sandro 1 self
  • 从适用于 Android 应用 API 17+ 的 CellSignalStrengthLte 获取 RSRP

    在过去的十年里 有一些人问过类似的问题 但没有人有任何答案 我需要编写一个 Android 应用程序来收集和存储 RSRP RSRQ CINR 和 Cell ID 答案需要在手机硬件允许的范围内尽可能准确 我正在三星 Galaxy S5 上
  • 如何创建只读 ng-repeat?

    初始渲染速度非常慢ng repeat 如何创建只读版本ng repeat 这样当您迭代的数组发生更改时 呈现的 HTML 不会更改 双冒号使 Angular 中的内容成为只读 使用以下语法 ul li item name li ul
  • 图像无拉伸或裁剪

    我的问题很简单 假设我有两个矩形图像 第一个宽 200 像素 高 100 像素 第二个宽 100 像素 高 200 像素 我想以恒定的宽度 高度显示图像 例如150 像素 x 150 像素 无需拉伸图像以适应 我不介意图像周围有空白 填充
  • 如何向 JScrollPane 添加多个元素

    因此 我试图向 JScrollPane 元素添加多个元素 但到目前为止我还无法将其拉出 我可以使第一个元素显示出来 在我的例子中是一张图片 但是在向 JScrollPane 添加额外的面板后 第一个元素消失了 甚至第二个元素 新面板 也没有
  • .Net Standard 上的 Log4Net 没有用于在没有存储库的情况下获取记录器的版本

    我正在尝试将一个项目转移到 net 标准 它基本上是一个类库 我正在使用 log4net 进行日志记录 并且我正在使用该方法 public static ILog GetLogger string name 由于这是一个被多个项目引用的库
  • Mysql 的 WHERE in 子句问题

    mysql 中的 where in 子句有什么问题 我的两张桌子SEATS and REGISTERS看起来像这样 SEATS REGISTERS seat id int register id int seat id varchar 10
  • 更改 Android 上另一个应用程序的权限(已 root)

    我看到了一些关于此的主题 但没有一个真正谈到我想做的事情 我正在尝试编写一个应用程序 该应用程序将拒绝另一个应用程序连接到互联网 IE 防火墙 的能力 根据我创建的算法 它将确定该应用程序是恶意的 该应用程序将安装在已root的手机上 然后
  • C# 只读字段是否允许在类外部修改?

    我有一个readonly我通过构造函数参数设置的对象字段 如果我修改对象 类内的字段也会改变 我猜这是通过引用调用 有什么办法可以更好地做到这一点 防止它吗 private void Form1 Load object sender Eve
  • 打开关闭 GPS android [重复]

    这个问题在这里已经有答案了 可能的重复 如何以编程方式在 Android Cupcake 中启用 GPS 我目前正在 Android 中编写一个与 GPS 配合使用的应用程序 目前我可以确定 GPS 是否启用 我的问题是 如果禁用了 GPS
  • 减少 iTextSharp 上的段落换行高度

    当段落长度对于 ColumnText 的宽度来说太长时 如何减少换行符的高度 我尝试了以下方法 因为我看到了其他问题的答案 p Leading 0 但这并没有产生任何影响 我也尝试过增加Leading to 100看看是否添加了更大的换行符
  • 事件委托,Event.target 与 Event.currentTarget

    In MDN Event target 参考有一个关于实现事件委托的示例 事件委托示例 Assuming there is a list variable containing an instance of an HTML ul eleme