我在加载网页时一直使用jQuery的$.ready()
函数进行初始化,但有些网页稍后通过$.ajax()
调用动态加载内容$.ready()
呼叫已经完成。
问题是我需要一个等效的ready()函数来初始化动态内容 - 我不能使用$('.sel').ready()
,因为ready()
仅适用于整个文档并尝试初始化来自$ajax.success()
的内容随机失败,因为看起来动态内容中的某些DOM元素并未始终加载。
$.ready(function() {
// init document here, then much later...
$.ajax({
url:/getdynamicstuff,
success:function(dyndata) {
// container is part of the main body, so this always works
$('.container').html(dyndata);
// try and use ready again once the container DOM is loaded...
$().ready(function() {
// this commonly (but not always) fails because $('.dynelement').length is 0 (i.e the element is not yet in the DOM)
$('.dynelement').click();
});
}
});
});
如果所有动态DOM元素都已完全加载,如何触发回调?