jQuery 加载动态元素

2024-01-02

我正在尝试对动态添加到页面上某些容器的元素进行一些条件操作,但我错过了一个事件。

假设我有一个容器:

<div id="container"></div>

我可以轻松地将事件处理程序绑定到所有新元素的单击函数,使用

$('#container').on('click', '.sub-element', function() { ... });

但是,当元素添加到时,我应该绑定什么才能获得“一次性”钩子#container。我尝试绑定到ready and load无济于事。有什么办法可以做到这一点,还是我必须想出另一种解决方案来解决我的问题?

这个小提琴包含我的非工作示例 http://jsfiddle.net/ggHh7/1/.


您可以在新添加的 DOM 元素上触发自定义事件,该事件可以由 jQuery 事件处理程序拾取:

//bind to our custom event for the `.sub-element` elements
$('#container').on('custom-update', '.sub-element', function(){
    $(this).html('<b>yaay!</b>');
});

//append a new element to the container,
//then select it, based on the knowledge that it is the last child of the container element,
//and then trigger our custom event on the element
$('#container').append('<div class="sub-element">No worky!</div>').children().last().trigger('custom-update');

这是一个演示:http://jsfiddle.net/ggHh7/4/ http://jsfiddle.net/ggHh7/4/

即使您通过不同的方法加载动态内容,此方法也允许您在全局范围内执行某些操作。

Update

我不确定浏览器支持(我假设 IE8 及更早版本不支持此),但您可以使用DOMNodeInserted检测何时添加 DOM 元素的突变事件:

$('#container').on('DOMNodeInserted', '.sub-element', function(){
    $(this).html('<b>yaay!</b>');
})

$('#container').append('<div class="sub-element">No worky!</div>');

这是一个演示:http://jsfiddle.net/ggHh7/7/ http://jsfiddle.net/ggHh7/7/

UPDATE

为此有一个新的 API:DOMNodeInserted此时已贬值。我还没研究过,但它叫MutationOvserver: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

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

jQuery 加载动态元素 的相关文章

  • 移动设备上的剩余悬停效果

    我一整天都在努力做这个JSFiddle http jsfiddle net gsamaras q2w4jjyt 4 也适用于手机 但我所有的尝试都没有效果 在桌面上 当用户将鼠标悬停在箭头上时 它会变成红色 在移动设备上 当用户触摸 为了单
  • 如何阻止用户重复单击 jQuery AJAX 调用?

    我有一个包含以下脚本的网页 JavaScript function LinkClicked var stage this id var stop ContentPlaceHolderMenu txtDate val var nDays Co
  • 包含从代码隐藏 (ASP.NET C#) 到 ASPX 中的图像概述的图像列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JQuery 设置动态最大宽度

    我不太擅长 jQuery 因此完整的代码解决方案将是理想的选择 该函数将 获取浏览器屏幕的 70 宽度 将该宽度转换为其相应的 px 值 设置最大宽度 mainContainer使用从转换 计算中获得的值 这是我要设置的容器的 CSS 样式
  • 从表中删除除第一个之外的所有子元素?

    My HTML table tr td 1 td tr tr td 2 td tr tr td 3 td tr table 如何删除用户表中除第一个之外的所有子元素使用 jQuery 我尝试过的 user table children re
  • 有没有办法同步ajax调用

    这可能是一个微不足道的问题 但我想知道是否有办法以某种方式知道最后一个 ajax 调用何时完成 假设我有 3 个异步 ajax 调用 ajax type GET datatype json url
  • 如何恢复文本框数据

    我有一个小小的要求 我们已经恢复了之前清除的文本框数据 下面是我的 HTML 代码 table tr td td tr table
  • Internet Explorer 中的 AJAX 问题

    这在 FF safari chrome 和 opera 中工作得很好 但在 IE 中却不行 错误代码是403 var datau trends php 3Frastgele 3D33 ajax type GET url loader php
  • 在节点环境中存根 jQuery.ajax (jQuery 2.x)

    我正在尝试运行一些需要存根的测试jQuery ajax 我正在使用 SinonJS 来做到这一点 它曾经与旧版本的 jQuery 1 x 一起工作得很好 var require jquery var sinon require sinon
  • 获取异常 jQuery 必须包含在 Bootstrap 的 JavaScript 之前

    我遇到以下异常 bootstrap js 240 Uncaught TypeError Bootstrap 的 JavaScript 需要 jQuery jQuery 必须包含在 Bootstrap 的 JavaScript 之前 在 Ob
  • jquery悬停一次?

    jquery 使悬停函数执行一次然后停止的方法是什么 one 不起作用 button color 2 hover function dosmth 谢谢 Hover http api jquery com hover 绑定处理程序鼠标输入 h
  • UpdatePanel 破坏 JQuery 脚本

    这是我想做的事情的简化版本 基本上我有一个数据列表 里面有很多东西 当你将鼠标悬停在数据列表中的项目上时 我希望 jquery 隐藏 显示东西 问题是 在我进行数据绑定后 如果 gridview repeater datalist 位于更新
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • 从更多元素中仅获取唯一名称

    我动态渲染了 HTML 其中列出了未确定数量的单选按钮 这些按钮的名称代表数据库中的某些 id 我需要收集收音机的所有唯一名称 这是一个例子
  • 从 jQuery UI 对话框调用 Bootstrap 模式:超出最大调用堆栈大小

    我有一个有点奇怪的问题 我正在调用 Bootstrap Modal 同时打开了 jQuery UI 对话框并且正在获取RangeError Maximum call stack size exceeded 在控制台中 奇怪的是 只有当我在打
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h
  • Cycle2 初始化事件未触发

    我使用 Cycle2 作为基本的轮播 我的幻灯片项目有时在其数据中包含一个 url 因此我必须使用 Cycle2 api 事件来使用该 url 当它存在时 我的问题是 虽然 cycle after 事件触发正常 但初始化事件都不会触发 因此

随机推荐

  • 如何与 Doctrine 建立 UNION?

    我正在尝试执行以下查询 public function findByNotifications ownerId em this gt getEntityManager query em gt createQuery SELECT n FRO
  • 如何使用“Match”cmdlet 在 PowerShell 中过滤字符串数组(或列表)?

    我正在尝试过滤 CSV 文件 但下面的脚本给出了一个错误 如何指定要在每个 String 对象上运行匹配 我尝试了各种组合 但没有结果 FileNames System IO Directory GetFiles C Users anagr
  • 无法将类型编组为元素,因为它缺少自动生成的类的 @XmlRootElement 注释

    我需要根据我的架构验证 Class 对象 在该架构中我提供了正则表达式来验证自动生成的 JAXB 类的字段 当我尝试验证我的类对象时 出现以下错误 无法将类型 xyz 编组为元素 因为它缺少 XmlRootElement 注释 这是我用来验
  • 写 FizzBu​​zz

    读完这本编码恐怖小说后 我再次遇到了 FizzBu zz 原帖在这里 编码恐怖 为什么程序员不能编程 http www codinghorror com blog 2007 02 why cant programmers program h
  • 我们如何将 Perl 哈希引用绑定到 java 哈希映射

    我在用内联 Java https metacpan org pod Inline Java在 Perl 中 我需要将哈希传递给 Java 方法 我尝试过以下代码 my obj new Pod 101 my data input gt 45
  • 如何在链表中的给定位置插入项目?

    这是添加项目的方法 public void insert Object item Link add new Link add data item add next head head add listsize 但是如何在给定位置添加项目 到
  • 使用 Chart.js 将自定义文本添加到条形图标签值

    我正在使用 Chart js 插件来显示条形图 我得到的输出如下 My question is about how to add a custom text after rendering a value to bar For exampl
  • 使用 mongoose 过滤 mongoDB 中的嵌套数组

    我需要过滤 MongoDB 中的多级嵌套数组 架构如下 id 1234 array1 id a11 array2 id a21 array3 id a31 status done id a32
  • 打开自定义协议后关闭浏览器窗口

    我创建了一个 ASP Net 应用程序页面来处理打开FileSite http interwoven com cn products worksite deskmail site html链接 有一个自定义协议可以正确处理链接 即它打开文件
  • 如何创建白色的CSS框阴影

    我的网站上有以下框阴影 css 它在 Chrome 中看起来很棒 但 Firefox 和 IE 无法重现我正在寻找的效果 我只想在盒子的底部有一个白色的实心阴影 如何使其适用于所有浏览器 box shadow 0px 10px 14px 1
  • 如何禁用 netbeans 中的“扫描外部更改”?

    如何在 netbeans 中禁用 扫描外部更改 通过取消标记此处提到的复选框 https web archive org web 20110513031753 http blogs oracle com netbeansphp entry
  • 无法在索引 2 处绑定参数,因为索引超出范围

    我正在努力解决这个问题 任何人都可以帮我解决这个问题吗 请让我知道查询语句中的 where 子句哪里出了问题 我想从所有列中读取值 然后将其显示出来 这是我的查询代码 public class MainActivity extends Ap
  • 重新排序内存中的字节,然后写入文件

    我在内存中有一个数据块 从memory ptr 该程序的作用是对每个 qword 进行字节反转 然后将其写入文件 例如 18171615141312112827262524232221将写成1112131415161718212223242
  • 在 pandas 数据框中查找具有相同列值的行

    我有两个具有不同列大小的数据框 其中四个列在两个数据框中可以具有相同的值 我想在 df1 中创建一个新列 如果 df2 中的一行与 df1 中的一行具有相同的 A B C 和 D 列值 则该新列的值为 1 如果没有这样的行 我希望该值为 0
  • 如何为具有 VARBINARY(MAX) 字段的表生成 INSERT 脚本?

    我有一张桌子 上面有VARBINARY MAX 字段 SQL Server 2008 具有FILESTREAM 我的要求是 当我部署到生产环境时 我只能向 IT 团队提供一组按特定顺序执行的 SQL 脚本 我在生产中制作的新表有这个VARB
  • 未设置 vs. = NULL [重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 释放内存哪个更好 unset 或 var null https stackoverflow com questions 584960 whats better at freeing me
  • ExtJS 图表的性能比 FusionCharts 更好吗?

    我们正在考虑在应用程序中用 ExtJS 图表替换 FusionCharts 因为 我们已经在整个 UI 中使用了 ExtJS 如果能够消除另一个商业第三方依赖项和 API 的开销和费用 那就太好了 我们希望能够在无 Flash 的移动设备上
  • 如何在 Ruby on Rails 中覆盖 Materialise CSS?

    我一直在互联网上浏览一些关于 Rails 中的 Materialise 的帖子 但是这个领域似乎非常模糊 我目前正在使用 Materialize sass gem 我没有找到很多有用的帖子 我决定来这里 这是我的页面代码pages disc
  • ggplot2 在箱线图顶部添加文本

    我有一个正在绘制的数据ggplot2作为箱线图 看起来像 gt head varf sID variable value 1 SP SA036 SA040 CM0001 0 492537313 2 SP SA036 SA040 CM0001
  • jQuery 加载动态元素

    我正在尝试对动态添加到页面上某些容器的元素进行一些条件操作 但我错过了一个事件 假设我有一个容器 div div 我可以轻松地将事件处理程序绑定到所有新元素的单击函数 使用 container on click sub element fu