DOM 内容加载后附加的元素中的事件监听器

2023-12-09

我需要听一个“改变”事件<select>但这仅适用于第一次选择,有一个按钮可以添加更多<select> to the document,所以我需要检查是否有<select>改变了,我正在做这样的事情:

document.addEventListener('DOMContentLoaded', function() {
    var selects = document.getElementsByClassName('select');
    for(var i=0;i < selects.length;i++) {
        selects[0].addEventListener('change', function() {
             // do something here...
        }, false);
    }
}, flase);

但这仅在以下情况下执行DOMContentLoaded如果我在外部执行它document.addEventListener它不执行。

附:我用纯 JS 来做这件事,因为与jQuery我可以用纯 JS 更好地控制我的脚本。


考虑到这些节点已经存在于 DOM 中,将事件直接附加到 DOM 节点就可以了。

但是,根据您的案例要求,有一种更好的方法,允许将给定事件的处理程序绑定到当前节点和将来添加的节点。

您可以利用事件冒泡:附加到节点的事件会为节点本身及其所有父节点触发。在这里,我使用 body 元素作为父节点,但您可以在任何元素上设置侦听器,因为它是当前和未来选择元素的父元素:

document.body.addEventListener("change", function(e) {
    console.log(e.target);
}

查看此示例以获得更好的想法:http://jsfiddle.net/6HqqA/.

这是事件冒泡概念的一个很好的解释:http://davidwalsh.name/event-delegate.

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

DOM 内容加载后附加的元素中的事件监听器 的相关文章

  • jQuery数据表设置列设计和成功回调中的值

    我为我的数据表编写了以下代码 它用我的数据库中的内容填充表 如下所示 if datatable null datatable destroy datatable tableProducts DataTable pageLength 50 b
  • 如何从对象数组中删除所有重复项?

    This is a large array of objects e g let totalArray id rec01dTDP9T4ZtHL4 fields user id 170180717 user name abcdefg even
  • 从 ES6 模块导入函数表达式或函数声明有什么区别?

    据我了解 参见第 16 3 2 1 节 http exploringjs com es6 ch modules html ES6 允许函数 类导出操作数使用不同的语法 区别在于导出的函数是否需要在导入时解释为函数声明 在这种情况下 您可以编
  • AngularJS - 在等待数据/数据计算时加载图标

    我有一个简单的 Angular http get app factory countriesService function http return getCountryData function done http get resourc
  • Bug 组合:jQuery 1.4、ajax/json、Firebug Lite 和 IE 8

    我刚刚得出结论 无论我如何尝试 jQuery 的 ajax 调用都无法在 IE 8 中处理 JSON 数据 我发现我可以使用 jQuery 1 3 2 库 这解决了问题 但 1 4 根本无法处理 JSON ajax 请求 即使返回的 JSO
  • 在Javascript中将RGB数组转换为RGBA数组的快速方法

    我正在使用的模拟器在内部存储 RGB 值的一维帧缓冲区 但是 HTML5 画布在调用 putImageData 时使用 RGBA 值 为了显示帧缓冲区 我当前循环遍历 RGB 数组并以某种方式创建一个新的 RGBA 数组与此类似 https
  • 预加载 javascript 和 css 文件

    我目前正在开发一个移动网站 该网站大量使用图像 CSS 和 JavaScript 例如 它使用未压缩的 150KB 的库 我为图像构建了一个预加载器 效果相当好 function loadImages images var sum 0 fo
  • 如何检查侧边栏视图是否已经在主干中渲染?

    通常 用户通过主页进入网站 然后我在那里渲染侧边栏视图 接下来 用户单击链接 路由器呈现另一个视图并替换原始内容视图 侧边栏视图不会重新渲染 当用户在子页面上单击刷新时 侧边栏不会呈现 如何检查视图是否存在并且已渲染 划分责任并坚持下去 不
  • UpdatePanel 启动脚本未执行

    我正在编写一个在 SharePoint 网站中使用的 ASP NET Web 部件 并尝试使用 UpdatePanel 来呈现查询结果 我想使用 JQuery 插件来修改从异步回发返回的表 但我无法让启动脚本在异步更新上执行 我发现这个帖子
  • bootstrap-select 未选择任何内容

    我正在使用引导选择
  • 带有桌子的嵌套表

    我在应用了表排序器的表中嵌套了表 它在嵌套表中添加了排序标题 但是它们没有对行进行排序 并且抛出了JavaScript错误 我想拥有 嵌套表不可排序 巢表上的排序实际上可以工作 但不是现状 您的第一个选择要容易得多 使嵌套表不可排序 像这样
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • IE9 中的无效字符 DOM 异常

    以下这段 JS 曾经在 IE8 中工作 现在在 IE9 中失败 document createElement 我收到以下异常 SCRIPT5022 DOM 异常 INVALID CHARACTER ERR 5 上面这段代码是不是不符合标准呢
  • 如何使用 API 中的数据填充选择的下拉元素 - ReactJS

    我对 React 还很陌生 我正在从 API 获取数据 当我检查控制台日志时可以看到数据 但是我不知道如何使用 map 创建一个新数组 然后选项元素可以使用该数组来显示货币代码 目前它填充下拉列表 但选项元素全部为空 结果显示为 NaN 下
  • 禁用移动设备上的锚点菜单点击

    我使用嵌套列表作为带有子菜单项的菜单 我曾经这样做过 如果您将鼠标悬停在主菜单项上 子菜单项将通过将显示从无更改为块来出现 我决定让子菜单看起来就像是下拉的 并使用了 CSS 过渡 我遇到的问题是 在第一种方法中 如果您触摸 iPad 上的
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • 如何更改数据表中标题单元格的内容?

    我正在使用数据表 http datatables net plugin 在我的可排序列上 我想用按钮替换列文本 但是这样做 oSettings aoColumns i nTh text 我可以检索相应列的文本 但是 oSettings ao
  • 从“class”名称中删除/替换不需要的前缀信息

    我正进入 状态style从后端 它带有不需要的前缀 我会替换没有前缀的相同内容 正确的方法是什么 这就是我得到的
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行
  • 用于替换前 5 个数字的正则表达式,无论它们之间有什么?

    我正在努力实现以下匹配 Input 123 45 6789 123456789 1234 正则表达式尝试输出 d 5 123 45 6789 123456789 1234 d 2 3 123 45 6789 123456789 1234 d

随机推荐

  • 正则表达式与短语中的子词不匹配

    我的程序显示匹配结果 但我想将结果排序为最佳匹配 第二最佳匹配等 我的文本文件包含以下行 red or yellow red yellow 所以如果我搜索 red or yellow 我得到以下结果 red or yellow red ye
  • Springboot TomcatEmbeddedServletContainer KeepAliveTimeout 不起作用

    我已将 Spring Boot 嵌入式 tomcat 服务器中的保持活动超时设置为 30 秒 所以我在下面的Application java中使用 Bean public EmbeddedServletContainerFactory ge
  • 无法在 DLL“opengl32.dll”中找到名为“glBindFramebuffer”的入口点。在 MonoGame 3.0 中

    最近我在我的笔记本电脑上安装了 MonoGame 3 0 我从项目模板中获取了一个新的 MonoGame Windows OpenGL 项目 并尝试运行它 但我得到了这个异常 Unable to find an entry point na
  • psql:显示带有 \df 且*不*包含特定模式的函数

    因为我将 dblink 扩展安装到 默认 公共模式中 df将显示所有 dblink 相关函数 我只想查看自定义功能 如何查看不包含文本 dblink 的函数 到目前为止我尝试过的 df dblink df dblink df dblink
  • .load 与 .on(“加载”)

    我正在 div 中加载一个 php 页面 该页面采用已发布的变量来显示正确的内容 它的工作原理是这样的 mainArea load page php folder a fadeIn passes vars but all my jquery
  • Qt 通过 QNetworkAccessManager 扫描 Wi-Fi

    欢迎 我在扫描 Wi Fi 以获得 Wi Fi 中所有可用的连接时遇到问题 到目前为止我已经写了这段代码 include
  • java.util.Iterator 但无法导入 java.util.Iterator

    鉴于此代码 import java util Iterator private static List
  • Matlab打印板

    我是 Matlab 新手 有没有办法使用printmat打印2个字的标题 结果示例如下 Title One Title Two Title Three 11 22 33 22 33 44 这是我当前尝试修改的代码 matA 11 22 33
  • 如何在canvas、html5中旋转形状?

    我试图用这个旋转一条线 window onload function var canvas document getElementById foo var context canvas getContext 2d context moveT
  • 使用 Mockito 时模拟和监视有什么区别?

    使用 Mockito 间谍的用例是什么 在我看来 每个间谍用例都可以使用 callRealMethod 进行模拟处理 我看到的一个区别是 如果您希望大多数方法调用都是真实的 那么使用模拟与间谍可以节省一些代码行 是这样还是我错过了更大的图景
  • 如何在 MySQL 中使用“WITH”子句?

    我正在将所有 SQL Server 查询转换为 MySQL 并且我的查询已WITH他们都失败了 这是一个例子 WITH t1 AS SELECT article userinfo category FROM question INNER J
  • 遍历 NSData 并抓取块

    有什么方法可以迭代 NSData 以便我可以根据特定的字节模式拆分它 我需要将某些块分解成一个数组以便以后查找 拆分一个NSData在某些分隔符上 您可以使用以下命令搜索分隔符rangeOfData options range 然后使用分割
  • d3.IE 中的选择类型检查

    如何检查给定对象是否是d3选择 下面的代码打印true在 Chrome 和 Firefox 中 但是false在 Internet Explorer 中 console log d3 select document body instanc
  • 正确的安装顺序 VS 2012 Express 和 SQL Server 2012 Express

    在未安装任何 SQL Server 版本的 Win7 64 系统上 我安装了 Visual Studio 2012 for Web 我以为它会给我安装 SQL Server 2012 Express 的选项 但事实并非如此 现在我想在安装完
  • 德塔云平台无法使用FastAPI上传文件

    当我通过运行此代码时uvicorn main app一切正常 但是当我使用 Deta 运行它时 我得到Internal Server Error并且只有GET端点工作 POST一个甚至没有像应该的那样被调用 你能帮我么 提前致谢 impor
  • 本地数据库插入未存储

    这可能是我的一个愚蠢的错误 但我似乎无法理解它 我创建了一个新的空 C Windows 窗体应用程序 我添加了一个数据库 基于数据集 并将文件存储在我的解决方案资源管理器中 我添加了一个表Test带柱Name 我使用添加一条记录new Sq
  • Scala 方法调用中的大括号[重复]

    这个问题在这里已经有答案了 在 Scala 中 我们可以 println 你好 世界 摘自 Scala 编程 一书 这种用花括号代替圆括号的能力的目的 传入一个参数是为了让客户端程序员能够编写函数 大括号之间的文字 这可以使方法调用感觉更像
  • Linux 支持进程的内存隔离吗?

    更详细地说 问题是 没有root权限 一个进程是否可以读取 而不仅仅是写入 另一个进程的内存 例如 通过某种方式读取 proc gcore 或 proc PID mem 我还不确定他们的权限要求 我确实明白虚拟地址是实现的 每个进程都有自己
  • 如何在 ListView 中将图像从 PHP 服务器延迟加载到 Android

    我是 android 新手并正在探索它 我需要在如下所示的列表中动态加载用户图像 用户列表 我使用一张静态图像来显示资源文件夹中的用户图像 该列表是动态的 并且随着我的位置的变化而变化 但仅当我刷新它时 AddObjectToList jF
  • DOM 内容加载后附加的元素中的事件监听器

    我需要听一个 改变 事件