javascript - Ajax 调用后的函数内的 document.ready()

标签 javascript jquery jquery-events

我有一个使用 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()

function loadPage1Script(){
    //Start the carousel plugin, for example
}

HTML 结构中添加了新代码。在执行代码以附加所有事件处理程序之前,是否应该在 loadPage1Script() 中调用 $(document).ready(); ?如果我不这样做,会有什么不同吗?如果我添加 $(document).ready(); ,脚本启动速度会更快吗?

function loadPage1Script(){
    $(document).ready(function(){
        //Start the carousel plugin, for example
    });
}

取自 jQuery 站点 ( http://api.jquery.com/ready/ ):

"In most cases, the script can be run as soon as the DOM hierarchy has been fully constructed. The handler passed to .ready() is guaranteed to be executed after the DOM is ready, so this is usually the best place to attach all other event handlers and run other jQuery code."

最佳答案

如果您在调用后调用 loadpage 函数

$( document ).ready( function () {
    ...
});

那就应该没关系了。此外,由于 $.fn.html 函数不是异步的,因此立即运行 loadPageScript 函数不会有任何问题

关于javascript - Ajax 调用后的函数内的 document.ready(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14751139/

相关文章:

javascript - 如何使用 jQuery .live() 和 ajax

javascript - 调度名称中带有点的 CustomEvent 不会触发 jQuery.on() 事件监听器

javascript - 为什么 jQuery 的一个添加到元素后会立即触发?

javascript - "DataTable"加载 jquery 后 CSS 样式消失

javascript - SVG 动画路径 d 属性

javascript - 如何在 javascript 中编写迭代器以进行简单的 AJAX 调用?

javascript - JQuery on() 具有动态创建的字段和多个选择器

javascript - 在 meteor 中插入嵌套对象

javascript - 在 JavaScript 中访问 JSON 对象(已解析)中的数据

javascript - 检查复选框 :check is not working, 为什么,jquery?