Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数中的document.ready()和Ajax调用_Javascript_Jquery_Javascript Events - Fatal编程技术网

Javascript 函数中的document.ready()和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

我有一个应用程序,它使用ajax调用加载内容。那些ajax调用只是检索HTML。Javascript在另一个文件中

在完成AJAX调用之后,我将调用一个函数,该函数应该尽快开始执行javascript

这里我留下一个小函数,它将从ajax调用中检索一些代码

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 () {
    ...
});