动态创建的元素上的事件绑定?

2023-11-21

我有一些代码,我循环遍历页面上的所有选择框并绑定.hover事件让他们在宽度上做一些调整mouse on/off.

这发生在页面准备好并且工作得很好。

我遇到的问题是,在初始循环之后通过 Ajax 或 DOM 添加的任何选择框都不会绑定事件。

我找到了这个插件(jQuery 实时查询插件),但在我使用插件向我的页面添加另一个 5k 之前,我想看看是否有人知道一种方法来做到这一点,无论是直接使用 jQuery 还是通过其他选项。


从 jQuery 1.7 开始你应该使用jQuery.fn.on填充选择器参数:

$(staticAncestors).on(eventName, dynamicChild, function() {});

解释:

这称为事件委托,其工作原理如下。该事件附加到静态父级(staticAncestors)应处理的元素。每次在此元素或后代元素之一上触发事件时,都会触发此 jQuery 处理程序。然后处理程序检查触发事件的元素是否与您的选择器匹配(dynamicChild)。当存在匹配时,就会执行您的自定义处理程序函数。


在此之前,推荐的方法是使用live():

$(selector).live( eventName, function(){} );

然而,live()在 1.7 中被弃用,取而代之的是on(),并在 1.9 中完全删除。这live()签名:

$(selector).live( eventName, function(){} );

...可以替换为以下内容on()签名:

$(document).on( eventName, selector, function(){} );

例如,如果您的页面正在动态创建具有类名的元素dosomething你可以将事件绑定到已经存在的父级(这是这里问题的核心,你需要一些存在的东西来绑定,不要绑定到动态内容),这可以是(也是最简单的选择)是document。尽管牢记document可能不是最有效的选择.

$(document).on('mouseover mouseout', '.dosomething', function(){
    // what you want to happen when mouseover and mouseout 
    // occurs on elements that match '.dosomething'
});

事件绑定时存在的任何父级都可以。例如

$('.buttons').on('click', 'button', function(){
    // do something here
});

将适用于

<div class="buttons">
    <!-- <button>s that are generated dynamically and added here -->
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态创建的元素上的事件绑定? 的相关文章

随机推荐

  • 如何同时从列表中删除多个索引? [复制]

    这个问题在这里已经有答案了 假设我这里有这个列表 list a b c d e f g 我如何删除说索引2 3 4 and 5同时 pop 不接受多个值 我还能怎么做呢 您需要在循环中执行此操作 没有内置操作可以一次删除多个索引 您的示例实
  • 如何在android中实现onMenuItemClickListener

    我如何实施onMenuItemClickListener Override public boolean onCreateOptionsMenu Menu menu super onCreateOptionsMenu menu getMen
  • 如何创建重复的日历事件?

    我正在使用 asp mvc 3 jquery full calendar ms sql server 2008 和 c 我想知道是否有人知道如何制作重复事件 我不确定如何制作它们 例如 在谷歌日历中 您可以每年重复一次约会 我怀疑他们在数据
  • C# 3.0:自动属性 ​​- 编译器创建的私有变量的名称是什么

    我在检查 NET 3 5的新特性 发现在C 3 0中 我们可以使用 public class Person public string FirstName get set public string LastName get set 代替
  • jQuery select2 控件 - 检索最后选择的元素

    我正在使用 jQuery select2 控件 我需要实现以下功能 如果用户尝试添加某个元素 基于某种算法 我应该从选择中删除另一个 不兼容的 元素 我看到有两种方法可以实现这一目标 1 禁止对所选值进行自动排序 2 获取最后选择的项目的值
  • 导轨回溯消音器不起作用,而过滤器起作用

    新的 Rails 4 2 设置 我想抑制长错误回溯 在下面的回溯日志中 第一行对我来说就足够了 接下来的 4 行可以删除 ActionController RoutingError No route matches GET user act
  • 参数“***”未绑定在指定的 LINQ to Entities 查询表达式中

    我在我的项目中做了一个常见的查询 我使用Expression来构建我的查询树 代码列表如下 public IList
  • 使用 ostream 打印到任何地方[重复]

    这个问题在这里已经有答案了 我想将数据发送到任何地方 我的意思是我不想在控制台或文件中打印数据 但我需要一些std ostream目的 怎么做 我用过 std ostream bitBucket 0 最近没有出现问题 尽管如果您从某个角度看
  • 如何在站点 B 上使用 nginx proxy_pass 提供内容时覆盖站点 A 的内容安全策略?

    当我在站点 B 上使用 nginx proxy pass 时 有没有办法覆盖域 站点 A 设置的内容安全策略 Site A defined Content Security Policy on their domain Site B act
  • 如何拍摄 Android 模拟器状态的快照?

    当我从以下位置启动 Android 模拟器时Android SDK 和 AVD 管理器我可以勾选这些框从快照启动 and 保存到快照以便在关闭模拟器时保存模拟器的状态 并在启动模拟器时再次恢复状态 这很棒 因为我不必在每次启动模拟器时都等待
  • $lookup 数组中的 ObjectId

    在 ObjectId 数组而不仅仅是单个 ObjectId 字段上执行 lookup 的语法是什么 订单文档示例 id ObjectId products ObjectId
  • 为什么 Visual Studio Code 中文件资源管理器中的子文件夹会折叠成一行?

    我对 VS Code 比较陌生 我想我一定是不小心更改了设置 VS Code 过去常常清晰地显示下面的所有子文件夹 并从其父文件夹向右缩进 但有些事情发生了变化 现在我的子文件夹显示有点像文件资源管理器中的面包屑 请参见下面发布的图片 我尝
  • 将包含日数据的 JFreeChart TimeSeries 系列转换为周或月数据?

    我意识到这可能是一个愚蠢的问题 并且我知道可以通过确定每个数据点所在的周或月等来完成 但是 我正在寻找一种避免编码的方法 如果它是在图书馆中完成的 大概所有的陷阱都得到了 我宁愿使用它 原始数据存储在Excel电子表格中 但我无法直接操作电
  • 输出原始图像流而不是 jpeg,动态调整图像大小

    我有一个 PHP 函数 可以动态调整图像大小以创建缩略图 我遇到了麻烦 因为它只是显示原始图像流而不是实际图像 我的代码使用一个名为缩略图的函数 thumbnail thumbnail item filename 209 137 image
  • PHP date('W') 与 MySQL YEARWEEK(now())

    有人可以解释一下为什么这两个给出不同的结果吗 我用 PHP 执行这个 date YW mktime 0 0 0 3 22 2013 outputs 201312 当我使用 MySQL 执行此操作时 SELECT YEARWEEK now o
  • HTMLUnit:执行速度超慢?

    我一直在使用 HTMLUnit 它非常适合我的要求 但似乎速度极其缓慢 例如 我使用 HTMLUnit 自动化了以下场景 Goto Google page Enter some text Click on the search button
  • Postgresql:带有转义换行符的 CSV 导出

    我使用此处发布的 所有 指令从 postgresql 数据库导出了一些数据 将 PostgreSQL 的 PL pgSQL 输出保存到 CSV 文件 但某些导出的字段包含换行符 换行符 因此我得到了一个 CSV 文件 如下所示 header
  • 调试的最佳实践

    最近 我使用 Visual Studio 和 WinDbg 对托管应用程序进行了大量调试 因此我经常被要求协助同事进行调试 有好几次我发现人们只是到处插入断点并希望得到最好的结果 根据我的经验 这很少是一种有用的技术 我的方法是这样的 重现
  • 通过 GraphQL API 显示超过 100 个条目

    我已经厌倦了使用 github grpahQL API 中的 endCursor 和 hasNextPage 进行分页来获取超过 100 个数据 我使用的查询是 query organization login XXX repository
  • 动态创建的元素上的事件绑定?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我有一些代码 我循环遍历页面上的所有选择框并绑定 hover事件让他们在宽度上做一些调整mouse on off 这发生在页面准备好并且工作得很好 我遇到的问题