我想知道在加载dom时是否可以在脚本创建的项目上绑定已加载或就绪事件。我从live()听到,但它不是可点击的东西,它只是一个必须加载的项目。
感谢您的帮助!
答案 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,因此可以安全地在那里附加事件 等待文件准备好。