仅使用 Javascript 将事件监听器添加到不存在的对象

2023-12-08

我搜索了整个 stackoverflow,但没有针对这个问题得到任何好的结果。如果我错了,请纠正我。

我想向 DOM 中存在或不存在的对象添加EventListener。

在Jquery中我们可以简单地执行以下代码:

$('document').on('click', '.my-button', function () {
    alert("work!!!");
});

但我怎样才能只使用Javascript来实现呢?下面是我的源代码。但是页面加载后,所有新添加的对象都没有附加点击事件。

var Button = document.getElementsByClassName("my-button");
for(i=0;i<Button.length;i++){
    document.getElementsByClassName("my-button")[i].addEventListener("click",function(){
        alert("Work!!!!");
    });
}

感谢任何建议。


jQuery 不会将事件侦听器添加到每个 div,而是将其附加到父级。

您可以做的是将事件附加到父级,然后在事件处理程序中,看到它的目标是按钮之一,然后运行您的函数

HTML

<div id="parent">
     <div class="my-button">one</div>
     <div class="my-button">two</div>
     <div class="my-button">three</div>
</div>

JS

document.getElementById("parent").addEventListener("click", function(event) {
     if ( event.target.className === 'my-button') {
          //Do your magic
     }
});

这样,您添加的每个按钮都将运行您的函数。 我不知道事件目标是否具有 className 属性,但我认为根据 event.target 对象获取元素相当简单。 请记住,旧版 IE 没有 addEventListener 函数。检查这里EventTarget.addEventListener - Web API 接口| MDN

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅使用 Javascript 将事件监听器添加到不存在的对象 的相关文章

随机推荐

  • 使用 PHP 从 Facebook 获取用户 ID

    我正在尝试制作一个 Facebook 应用程序 当用户打开应用程序时需要来自 Facebook 的用户 ID 我已经在 Facebook 画布上设置了我的应用程序及其显示模拟表单 我需要帮助将 Facebook API 连接到我的页面 我需
  • 如何向另一个线程发送指针?

    我为相机的 C 库创建了一个 Rust 包装器 使用bindgen C 库中的相机句柄定义为typedef void camera handle哪个bindgen移植为 pub type camera handle std os raw c
  • WIX:使用 .NET 消息文件创建 EventSource

    我正在使用 WIX 为我的应用程序创建一个安装程序 到目前为止一切正常 但是 我试图在安装过程中创建一个新的事件源 但它没有按预期工作 我已阅读并理解这个问题这里是这样 但我有一个有点不同的情况 其中给定的解决方案似乎无法正常工作 以下是不
  • Jackson xml空元素序列化

    我很难受这个问题 Jackson 2 2 XML 序列化器似乎以这种方式序列化空对象字段
  • 在 PHP 和 JavaScript 之间交换变量

    选定的单选按钮将通过下拉框显示其相应的城市列表 例如 选择单选按钮 安大略省 后 将显示一个包含匹配城市的下拉框 在本例中 地区 是安大略省 ID 是 77 下面示例中提到的所有 PHP 函数 循环和 JavaScript 代码都工作正常
  • 如何查找给定时间范围内特定文件被修改的次数[关闭]

    Closed 这个问题是无关 目前不接受答案 如何在 Unix 客户端中查找给定时间范围 即过去 2 天内 特定文件被修改的次数 正如所见UNIX 和 Linux 堆栈交换 Linux 为文件提供了三种时间戳 上次访问时间 内容 时间 内容
  • 如何解决weblogic的jar包与应用程序的jar包冲突

    我遇到了我的应用程序的 jar 和 weblogic 容器的 jar 之间的 jar 冲突问题 我正在寻求您的帮助 情况是这样的 我试图从另一个 Web 服务内部调用一个 Web 服务 并且这两个 Web 服务都托管在我的本地 Weblog
  • Apple 拒绝我的应用程序,因为不包含允许用户从“文件”应用程序查看或选择项目的功能

    在我的应用程序中 我使用以下方法从图库获取视频 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDictio
  • 一个插座双堆栈

    我正在开发双栈客户端 服务器通信 我很好奇 我是否必须打开两个套接字 一个用于 IPv4 一个用于 IPv6 还是可以选择打开一个用于 IPv6 的套接字 并且它能够同时使用 IPv4 和 IPv6 连接 例如 如果我打开这样的套接字 SO
  • 输入带小数点的数值的最佳方法是什么?

    在我的应用程序中 用户需要能够输入带小数位的数值 iPhone 不提供专门用于此目的的键盘 仅提供数字键盘和带有数字和符号的键盘 有没有一种简单的方法可以使用后者并防止输入任何非数字输入 而无需对最终结果进行正则表达式 Thanks 我认为
  • 段落内的 HTML 标签

    我正在开展一个小型 鞋子尺寸 项目 用户应该能够阅读有关特殊鞋子的文章 读者可以通过按钮选择在文章中获取欧盟或美国尺寸 我的问题是 我怎样才能最好地做到这一点 因为我实际上不想创建一个新的 p 标签内的 p p tag p p This i
  • 在 Swift 中以编程方式制作 UIButton

    我正在尝试使用 Swift 以编程方式构建 UI 我怎样才能让这个动作发挥作用 override func viewDidLoad super viewDidLoad Do any additional setup after loadin
  • 如何使用 POCO 库将 C++ 对象传输到 Web 服务

    我有一个使用 Qt 和 openCV 的图像处理应用程序 对于每一帧 我应该将捕获的 cv Mat 图像对象发送到服务器以对其进行处理并获取结果 我应该使用 REST 架构 因为它的负载较低 我应该使用什么工具将 cv Mat 发送到服务器
  • 使用 Solver Foundation 进行约束规划的缺点

    使用 Microsoft Solver Foundation for CLP 有哪些缺点 Solver 确实在 Express Standard 版本中提供了一些支持 但可以想象 人们需要购买昂贵的 Gurobi Knitro 附加组件才能
  • 使用 #pragma GCC Optimize 优化 C 代码

    我正在尝试使用 GCC pragma optimization 在我的 C 代码中设置全局优化 Ubuntu 上的 GCC 版本是 4 4 3 基本思想是使用特定于功能的优化级别 pragma GCC optimize O3 我收到编译错误
  • Jackson 使用 Spring MVC 重复嵌套对象未反序列化

    我正在尝试将以下 POJO 转换为 JSON RestController Entity Table name user location NamedQuery name UserLocation findAll query SELECT
  • Swift Admob 控制台显示模拟器设备 ID,但在 iPhone 上运行时不显示?

    我已经在我的项目中实现了 Admob 但是我无法为我的 iPhone 添加测试设备 ID 这是代码 let request GADRequest myAd GADInterstitial adUnitID ca app pub 441173
  • OpenMP 大大减慢了 for 循环速度

    我正在尝试通过 OpenMP 并行化来加速这个 for 循环 我的印象是这应该将工作分成多个线程 然而 也许开销太大 无法给我带来任何加速 我应该提到这个循环发生了很多很多次 并且循环的每个实例都应该并行化 循环迭代次数 newNx 可以小
  • 如何 db:seed 模型及其所有嵌套模型?

    我有这些课程 class User has one user profile accepts nested attributes for user profile attr accessible email password passwor
  • 仅使用 Javascript 将事件监听器添加到不存在的对象

    我搜索了整个 stackoverflow 但没有针对这个问题得到任何好的结果 如果我错了 请纠正我 我想向 DOM 中存在或不存在的对象添加EventListener 在Jquery中我们可以简单地执行以下代码 document on cl