Javascript 函数中的document.ready()和Ajax调用
我有一个应用程序,它使用ajax调用加载内容。那些ajax调用只是检索HTML。Javascript在另一个文件中 在完成AJAX调用之后,我将调用一个函数,该函数应该尽快开始执行javascript 这里我留下一个小函数,它将从ajax调用中检索一些代码Javascript 函数中的document.ready()和Ajax调用,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一个应用程序,它使用ajax调用加载内容。那些ajax调用只是检索HTML。Javascript在另一个文件中 在完成AJAX调用之后,我将调用一个函数,该函数应该尽快开始执行javascript 这里我留下一个小函数,它将从ajax调用中检索一些代码 function loadPage(page) { $(".container").html(""); if(page == "page1") { $.ajax({ url: "/pag
function loadPage(page) {
$(".container").html("");
if(page == "page1") {
$.ajax({
url: "/page1.php",
success: function(html){
$(".container").html(html);
loadPage1Script();
}
});
}else if(page == "page2"){
$.ajax({
url: "/page2.php",
success: function(html){
$(".container").html(html);
loadPage2Script();
}
});
}
}
之后,他们将执行loadPage1Script()或loadPage2Script()
HTML结构中添加了一个新代码。我是否应该调用$(document.ready();在执行要附加所有事件处理程序的代码之前,是否在loadPage1Script()中?如果我不这样做有什么区别吗?如果添加$(document).ready();,脚本是否会启动得更快
从jquery站点()获取:
在大多数情况下,只要DOM层次结构完全构建好,脚本就可以运行。传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置如果在调用aleady后调用
loadpage
函数
$( document ).ready( function () {
...
});
那就没关系了。此外,由于
$.fn.html
函数不是异步的,因此直接运行loadPageScript
函数不会有问题,因为在这些函数中不需要使用$(document).ready()
,因为在运行时,它们所需的DOM元素已经存在(您只是在调用函数之前将它们插入页面中)
但是,您应该在$(document).ready()
中调用原始加载页
函数,以确保.container
元素存在
function loadPage1Script(){
$(document).ready(function(){
//Start the carousel plugin, for example
});
}
$( document ).ready( function () {
...
});