我想知道是否可以在DOM加载时将已创建的项目绑定到已加载或已准备好的事件上。 我听说过live(),但它不是可点击的内容,而只是必须加载的项目。
谢谢你的帮助!
我想知道是否可以在DOM加载时将已创建的项目绑定到已加载或已准备好的事件上。 我听说过live(),但它不是可点击的内容,而只是必须加载的项目。
谢谢你的帮助!
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);
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;
...
} );
您可以使用.on()
事件的委托形式,如此处所述:
委托事件的优点在于它们可以处理稍后添加到文档中的后代元素的事件。通过选择在附加委派事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁地附加和删除事件处理程序。例如,这个元素可以是Model-View-Controller设计中视图的容器元素,或者如果事件处理程序想要监视文档中的所有冒泡事件,则可以是
document
。在加载任何其他HTML之前,document
元素在文档的头部可用,因此可以安全地在那里附加事件而无需等待文档准备就绪。