在javascript dom元素创建上绑定ready事件

时间:2010-08-16 14:50:38

标签: javascript jquery

我想知道在加载dom时是否可以在脚本创建的项目上绑定已加载或就绪事件。我从live()听到,但它不是可点击的东西,它只是一个必须加载的项目。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

我猜你最好的镜头是那里的load事件。

$('element').load(function(){
   alert('loaded');
});

天然

var elem = document.getElementById('element_id');
elem.onload = function(){
   alert('loaded');
};

动态创建的另一个例子:

$('<img/>', {
   src:   '/images/myimage.png',
   load:  function(){
     alert('image loaded');
   }
}).appendTo(document.body);

答案 1 :(得分:0)

如果您希望能够分离用于创建项目和加载事件处理的代码片段,您可以尝试让动态创建的元素在窗口上触发自定义事件:

var myElement = $('<img/>', {
   src:   '/images/myimage.png'
}).appendTo(document.body);

$(window).trigger( {type: "myElementInit", myObject : myElement} );

在额外参数中使用指针返回自身,然后您可以在jQuery(document).ready中设置单独的处理程序,以查找“myElementInit”窗口事件并获取对该元素的引用。额外的参数:

jQuery.('window').bind( "myElementInit", function(event){
  var theElement = event.myObject;
...
} );

答案 2 :(得分:0)

您可以将.on()事件的委派形式用作documented here

  

委派事件的优势在于它们可以处理来自的事件   稍后添加到文档中的后代元素。通过挑选一个保证在当时存在的元素   委托事件处理程序附加,您可以使用委托事件   避免频繁附加和删除事件处理程序的需要。这个   element可以是a中视图的容器元素   例如,模型 - 视图 - 控制器设计,如果事件,则为document   handler希望监视文档中的所有冒泡事件。该   document元素在之前的文档头部中可用   加载任何其他HTML,因此可以安全地在那里附加事件   等待文件准备好。