javascript - 为什么我的 JavaScript 函数在我的 jQuery load() 调用完成加载之前运行?

标签 javascript jquery

我有一个 JavaScript 文件以及 HomePage.xhtml 和 Header.xhtml。

Header.xhtml 使用 JavaScript 包含在 HomePage.xhtml 中。

这是我的 JavaScript 文件的示例代码:

$(document).ready(function() {

    loadTemplate();
    loadUserContext();
});

function loadTemplate() {

    $(function() {
       $("#rcHeaderblock").load("Header.xhtml");
    });
}

function loadUserContext(){

    var sessionValue = 'Welcome, Guest';
    $('#networkID p:nth-child(1)').text(sessionValue);
}

networkID 是 Header.xhtml 中要动态替换的 div 标签的 ID。

但通过执行几个调试步骤,我发现 loadUserContext 在 Header.xhtml 实际加载到我的 HomePage.xhtml 之前被调用。

为什么?

最佳答案

load是异步的。但是,它为您描述的情况提供了回调机制。您可能想要做的是:

$("#rcHeaderblock").load("Header.xhtml", loadUserContext);

然后就是

$(document).ready(loadTemplate);

关于javascript - 为什么我的 JavaScript 函数在我的 jQuery load() 调用完成加载之前运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25449255/

相关文章:

javascript - 可迭代 : Can I start iteration from the start again after . 下一个值?

javascript - 我可以在 jsonp 请求的响应中设置 cookie 吗?

javascript - 使用 Javascript 按索引获取 HTML 有序列表中的元素

javascript - jquery 一次切换一个 div

jquery - 在没有document.ready()的情况下运行jQuery并崩溃,即8

javascript - 获取包含特定后代的所有元素

javascript - 替换文本,然后将其替换回来

javascript - 将所有具有特定标签的元素替换为组件

javascript - 如何同时使用 Angular 模型更改和双重绑定(bind)

javascript - JQuery:如何让元素在用户点击后显示?