Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一个“问题”;元素就绪“;将HTML元素插入DOM时发生的事件?_Javascript_Jquery_Dom_Backbone.js - Fatal编程技术网

Javascript 是否有一个“问题”;元素就绪“;将HTML元素插入DOM时发生的事件?

Javascript 是否有一个“问题”;元素就绪“;将HTML元素插入DOM时发生的事件?,javascript,jquery,dom,backbone.js,Javascript,Jquery,Dom,Backbone.js,我使用主干视图来呈现一些小部件,它们在作为独立元素呈现后被插入到DOM中。虽然一些插件/小部件在元素仍处于“半空中”时工作,但其他插件/小部件需要元素成为DOM的一部分才能正常工作。 例如,在主干视图的render方法中,我需要调用: $("#images").slimScroll(); //slimScroll is a jquery plugin that add custom scrollbar 但这不起作用。它只在主干视图元素位于DOM中后才起作用,现在我的解决方法是在将小部件插入D

我使用主干视图来呈现一些小部件,它们在作为独立元素呈现后被插入到DOM中。虽然一些插件/小部件在元素仍处于“半空中”时工作,但其他插件/小部件需要元素成为DOM的一部分才能正常工作。 例如,在主干视图的render方法中,我需要调用:

$("#images").slimScroll(); //slimScroll is a jquery plugin that add custom scrollbar 

但这不起作用。它只在主干视图元素位于DOM中后才起作用,现在我的解决方法是在将小部件插入DOM后调用plugin方法,但这是非常不灵活的。所以当元素在DOM中呈现时,我需要一个事件,类似于document.ready,但当元素在document中就绪时触发。有这样的事件吗?或者,处理这种情况的最佳方法是什么?

Ajax本身不会导致DOM更新

如果某个Ajax内容导致DOM更新,那是因为事件处理程序函数修改了DOM

只需将您的代码放在事件处理程序中DOM修改代码之后


也就是说,您可以使用in来查看DOM的更改。

您必须在视图的范围内查找元素。像这样:

this.$("#images").slimScroll();

但我想这是行不通的,因为插件需要将元素添加到DOM中,以计算宽度、高度、偏移量等。

您可以使用它,当发出
Ajax
请求时,它将被触发

也许应该是一个评论,对不起。是的,我粗心的错误$(“#images”,this.el).slimScroll()甚至在元素进入DOM之前就可以工作。谢谢但是你是对的,其他一些插件可能仍然需要DOM中的目标元素,所以这仍然是一个有效的问题。不,我需要的是当一个元素插入DOM并显示在页面中时的事件。再想一想,这与Ajax无关,javascript可以呈现类似表单的内容并附加到DOM中的div中。我需要重新表述这个问题。可能的重复可能的重复(至少“只有在视图位于DOM中后才能工作”部分)是的,我刚刚注意到,我已经编辑了这个问题。突变观察者正是我想要的,只是旧的浏览器不支持它。是否有一个js库可以监视DOM更改并生成事件?