jquery – AJAX加载的内容是否获得“document.ready”?

昨天我有一个问题,一个.on(‘click’)事件处理程序,我分配是不能正常工作。原来是因为我试图在元素存在于DOM之前应用.on(‘click’),因为它是通过AJAX加载的,因此在document.ready()到达时这一点。

解决了一个尴尬的解决方法,但我的问题是,如果我把一个<脚本>标签在ajax加载的内容和另一个document.ready()在那里,第二个document.ready()只有一旦解析ajax内容完成加载?换句话说,它认为单独加载的ajax内容是另一个文档,如果是这样,有另一个document.ready()在ajax加载的HTML工作方式,我认为它是吗?

或者;什么是更好的办法来处理这种情况? (需要将事件侦听器附加到document.ready()中尚不存在的DOM元素)

解决方法

回答你的问题:不,一旦ajax请求完成,document.ready将不会再次触发。 (将ajax中的内容加载到文档中,因此没有用于ajax内容的第二个文档)。

解决您的问题,只需将事件侦听器添加到元素,您可以在其中加载ajax内容
例如:

$( "div.ajaxcontent-container" ).on( "click","#id-of-the-element-in-the-ajax-content",function() {
  console.log($( this ));
});

对于#id-of-the-element-in-the-ajax-content,你可以使用你在$(“selector”)中使用的任何选择器。唯一的区别是,只有div.ajaxcontent-container下的元素将被选中。

怎么运行的:只要div.ajaxcontent-container存在所有匹配选择器#id-of-the-element-in-the-ajax-content的元素(如果它们现在存在或仅在将来存在)将触发此点击事件。

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...