jQuery修复“Uncaught TypeError: $ is not a function”错误

19

我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>      
<script src="http://someothersite.com/external.js"></script>

external.js:

$("head").append(unescape(""));

当我引用我的外部脚本时,出现以下错误:

Uncaught TypeError: $不是一个函数

我该如何解决这个问题?请注意,由于它是第三方的,因此我无法编辑外部Javascript文件。


3
使用“jQuery”替代“$”符号。 - cgee
2
你是否在其他引用之前包含了jQuery? - Nick Craver
1
你是否正在使用任何CMS或其他覆盖$引用的库?或者可能调用了jQuery.noConflict()函数。 - A. Wolff
1
确保在运行此脚本之前包含它。另外,如果您这样做了,请检查拼写错误,是否已经包含?您可以在任何开发工具的源选项卡中检查。 - Ayush Gupta
2
@michaelmcgurk,我不是WordPress用户,但是http://wordpress.stackexchange.com/questions/441/how-to-link-external-jquery-javascript-files-with-wordpress 如果你需要为之后加载的脚本使用它,我会使用类似这样的东西:$(window).on('load',function(){this.$ = jQuery;}); 最后尝试一下。 - A. Wolff
显示剩余7条评论
3个回答

61

在JS文件中使用以下语句。

jQuery(document).ready(function($){

// jQuery code is in here

});

在声明了上述语句后,您将能够使用美元符号 $。


谢谢。当引入外部JS文件时,这个能用吗? - michaelmcgurk
2
如果OP使用的是WordPress CMS,那就可以了。 - A. Wolff
@michaelmcgurk 不,但是你的问题缺乏很多上下文,所以谁知道呢... - A. Wolff
@A.Wolff 我已经更新了问题,希望有更多的上下文 :) - michaelmcgurk
在更新Jquery后,现有的问题得到了解决。 - WhiteHorse
谢谢,它起作用了! - Prateek Mehta

11

它使用的是旧版jQuery。

我更新了版本,这解决了我的问题。

哇哦!


如果您正在使用旧版本,则@WisdmLabs的答案将起作用。 - pr0cz

3
我认为问题是因为外部javascript在jquery之前被加载了。为了解决这个问题,使用requirejs,可以参考这个链接:http://requirejs.org/docs/api.html

3
请将全局变量 $ 指向 jQuery。但是首先需要检查为什么它还没有被指定为全局变量。 - A. Wolff
1
@A.Wolff,你能否在回答中向我展示这个? - michaelmcgurk
4
@michaelmcgurk,您可以“可能”回答之前在评论中提出的任何问题吗?SO不仅是一个复制/粘贴代码服务,还需要展示一些努力。 - A. Wolff
2
如果是这种情况,请使用jQuery代替$。 - Neil Villareal
1
如果您可以分享您的HTML代码和外部JS文件,那就太好了。 - Neil Villareal
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接