【问题标题】:Adding in a new script - not working with JQUERY [duplicate]添加新脚本 - 不适用于 JQUERY [重复]
【发布时间】:2014-05-08 15:20:56
【问题描述】:

我使用 grunt 来编译和缩小我的 js。

这包括 jquery。

我现在需要将其他人的脚本添加到我的站点中,所以我已经完成了:

<script defer src="/static/js/my-site-script.js"></script>
<script type="text/javascript" src="http://www.test.com/js/someones-script.js"></script>

但这不起作用。

我知道这是 jquery 的问题,因为当我在其他人的脚本之前的脚本标签中添加 jquery 时,它可以工作。

其他脚本确实包括:

$(document).ready(function() {

});

jquery 也适用于我的代码。

发生了什么事?

【问题讨论】:

  • 您是否检查过浏览器控制台中的错误?
  • 是 - 未捕获的 ReferenceError: $ 未定义
  • 您必须在使用jQuery 的其他脚本之前添加jQuery
  • 好吧,当脚本的一部分尝试将 $ 作为 jQuery 对象调用时,它还没有被定义。也许添加的顺序不正确,需要在调用之前定义 jQuery?请记住,defer 属性会阻止您的第一个脚本运行,直到整个页面加载完毕,因此可能在第二个脚本之后运行。

标签: javascript jquery


【解决方案1】:

在加载 jQuery 之前正在加载另一个脚本,因此您的错误。尝试删除 defer 或使用像 require.js 这样的依赖库。

【讨论】:

  • 或者我可以将延迟添加到第 3 方脚本吗?
【解决方案2】:

很难说没有看到脚本来查看副作用 - 但是第 3 方代码定义了自己的 window.$ 因此覆盖了 jQuery。

检查在 noConflict 模式下运行 jQuery 或将其设置为新值,以安全使用它。

如果您说错误是 $ 未定义,则它是尝试在 $ 定义之前访问 $ 的脚本之一。所以要么使用jQuery的getScript方法,要么在文档加载后找到一种运行方式,此时jquery会被定义。

【讨论】:

    猜你喜欢
    • 2016-05-02
    • 2013-06-06
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多