javascript - 在 Javascript ( js ) 文件中加载的 jQuery

标签 javascript jquery

这是一个非常简单的脚本,应该加载 jQuery。我可以在 Firebug 脚本选项卡中看到 jquery 正在加载,但是当我尝试使用它时出现“$ is not defined”错误。任何人都可以帮助我了解问题所在吗?

//function to add scripts
function include(file)
{
    var script  = document.createElement('script');
    script.src  = file;
    script.type = 'text/javascript';
    script.defer = true;     
    document.getElementsByTagName('head').item(0).appendChild(script);
}
//add jQuery
include('https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');

//See if jQuery is working
$(document).ready(function() {
    $('#internal').show();
})

////////////
//RETURNS: "$ is not defined $(document).ready(function() {"

奇怪的是,如果我不尝试在同一个脚本中使用 jQuery,而是加载另一个使用 jQuery 的 js 文件,它确实有效

//function to add scripts
function include(file)
{
    var script  = document.createElement('script');
    script.src  = file;
    script.type = 'text/javascript';
    script.defer = true;     
    document.getElementsByTagName('head').item(0).appendChild(script);
}
//add jQuery
include('https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');

//add my custom script that wants to use jQuery
include('scripts/testScript.js')

测试脚本.js

$(document).ready(function() {
    $('#external').show();
})

我很感激任何关于此的建议。

最佳答案

我猜是因为浏览器执行完当前文件后,只会执行你添加的脚本节点中的JavaScript。

浏览器将在一个线程中执行您当前的脚本。当它到达脚本末尾时,它会执行 DOM 中的下一个脚本。它无法停止运行一个脚本以跳转到下一个脚本。

您可能想看看 Google 的 JavaScript loader .工作方式是告诉它加载外部 js 文件,并注册一个回调以在加载该文件时执行。

您可以使用回调来实现,因为回调中的代码只会在浏览器执行完当前文件并移至下一个文件后执行。不过,您不能做的是让浏览器动态地从一个 js 文件切换到另一个 js 文件(即,当它第一次执行文件的内容时)。

关于javascript - 在 Javascript ( js ) 文件中加载的 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227909/

相关文章:

javascript - 调用子组件的方法

javascript - 一键登录

javascript - 我如何从 CasperJS 访问 iframe?

javascript - 单击时背景淡入

javascript - 如何在 JavaScript 中发出 https 请求?

javascript - Noty(通知程序)不在函数内部工作

javascript - Unslider 的高度和宽度问题

javascript - 如何在 JavaScript 中的事件图像 slider 的左侧和右侧包含尖括号

javascript - 有没有更好的方法将两个值中的最大值分配给一个属性?

javascript - 在php服务器端使用js验证安全吗?