当前位置: 首页 > 面试题库 >

jQuery函数不适用于异步加载的dom元素

柳星晖
2023-03-14
问题内容

我在尚不在页面中但可能异步加载到页面中的 DOM* 元素上编写了 jQuery 事件处理程序。我观察到的是,这些事件处理程序似乎不认识到
DOM 中添加了一些新元素,并且它们需要在触发时对其进行操作。
***

我的观察正确吗?如何实现此功能?


问题答案:

如果希望事件处理程序处理动态添加的内容,则需要使用 on

$(document).on("click", "someCssSelector", function(){
    //your code here
});

当然,这将导致观看您页面上任何位置的所有点击。为了提高效率,请查看是否可以构造页面,以便将click要处理其事件的所有这些元素都放在 一个
容器中。也就是说,如果所有这些元素都将添加到ID为的div中foo,则可以更有效地将上述内容编写为

$("#foo").on("click", "someCssSelector", function(){
    //your code here
});

如果您使用的是jQuery <1.7以下版本,则应使用委托

$(document).delegate("someCssSelector", "click", function(){
    //your code here
});


 类似资料:
  • 问题内容: 假设这样: 我为什么看不到任何东西? 问题答案: 当您将标记字符串传递到时,会使用(或其他适用于特殊情况的容器)容器上的浏览器属性将标记字符串解析为HTML 。无法解析SVG或其他非HTML内容,即使可以,也无法分辨出该内容应该在SVG命名空间中。 在SVGElement上不可用- 它仅是HTMLElement的属性。当前没有属性或其他方法(*)将内容解析为SVGElement。因此,

  • 问题内容: 我想使用jQuery在页面上异步加载外部图像, 并且尝试了以下方法: 但是它总是返回错误,是否有可能像这样加载图像? 我尝试使用method,但是它有效,但是我不知道如果图像不可用,如何设置超时时间(404)。我怎样才能做到这一点? 问题答案: 无需ajax。您可以创建一个新的图像元素,设置其source属性,并在完成加载后将其放置在文档中的某个位置:

  • 问题内容: 下面的代码有效。如果有更好的方法,请告诉我。如果我使用通过ajax加载test.html的主页中test.html中存在的脚本内容。该脚本不起作用。 Test.html: 我们必须根据需要通过ajax加载脚本以及动态加载的内容,但是我感到不利的是,每次我们发送ajax请求脚本时都会始终加载内容。但是我只找到了这种解决方案。如果有人知道更好的解决方案,请回复。 例如,如果以这种方式更改代

  • 本文向大家介绍JQuery异步加载PartialView的方法,包括了JQuery异步加载PartialView的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery异步加载PartialView的方法。分享给大家供大家参考,具体如下: 需求:页面上有dropdown之类的控件,当选择里面不同值的时候,下面关联的内容跟着改变。 思路:把与 dropdown关联的会改变的内容放到

  • 问题内容: 这个例子 在我看来,它与ajax加载函数的示例相同。正如代码片段可以告诉您的那样,它实际上会出错 我究竟做错了什么? 问题答案: https://code.jquery.com/jquery-3.2.1.slim.min.js是jquery的精简版,不包含ajax。slim是Express服务器中随附的默认版本。使用https://code.jquery.com/jquery-3.2.

  • 本文向大家介绍关于 jQuery Easyui异步加载tree的问题解析,包括了关于 jQuery Easyui异步加载tree的问题解析的使用技巧和注意事项,需要的朋友参考一下 想要实现从本地中加载json文件,通过事件来动态的插入到ul中时,遇到了一小bug html中代码是这样的 js中的代码 起初是想通过一个按钮的点击事件来动态的加载tree的内容就是如上代码,addAttr2Tree 是