jQuery 修复“未捕获的 TypeError:$ 不是函数”错误 [重复]
Posted
技术标签:
【中文标题】jQuery 修复“未捕获的 TypeError:$ 不是函数”错误 [重复]【英文标题】:jQuery fix for "Uncaught TypeError: $ is not a function" error [duplicate] 【发布时间】:2016-01-21 14:01:46 【问题描述】:我的代码:
<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(""));
不幸的是,当我包含外部脚本时出现以下错误:
未捕获的类型错误:$ 不是函数
我该如何解决这个问题?请记住,我无法编辑外部 javascript 文件,因为它是第三方。
【问题讨论】:
使用 'jQuery' 而不是 '$' 符号。 你是否包含 jQuery before 这个其他包含? 您是否使用任何 CMS 或其他库覆盖$
参考?或者jQuery.noConflict()
打电话
确保在运行此脚本之前包含它。另外,如果您这样做了,请检查拼写错误,是否包括在内?您可以在任何开发工具的源选项卡中检查。
@michaelmcgurk 我不是 wordpress 用户,但 wordpress.stackexchange.com/questions/441/… 如果您以后需要它来加载脚本,我会使用类似:$(window).on('load', function()this.$ = jQuery;);
最后尝试一下
【参考方案1】:
在 JS 文件中使用以下语句。
jQuery(document).ready(function($)
// jQuery code is in here
);
声明上述语句后,就可以使用$符号了。
【讨论】:
谢谢。这在拉入外部 JS 文件时有效吗? 是的,如果 OP 正在使用例如 wordpress CMS,那就是它 @michaelmcgurk 不,但是您的问题确实缺少很多上下文,所以谁知道... @A.Wolff 我已经更新了这个问题,希望有更多的上下文:) 关于更新 Jquery。现有问题已解决。【参考方案2】:它使用的是旧版本的 jQuery。
我更新了版本,这为我解决了问题。
哇!
【讨论】:
如果您使用的是旧版本,@WisdmLabs 答案将起作用。【参考方案3】:我认为问题是因为在加载 jquery 之前首先加载了外部 javascript。解决这个使用requirejs,按照这个链接使用http://requirejs.org/docs/api.html
【讨论】:
@michaelmcgurk 只需将$
的全局引用设置为指向 jQuery。但是您需要首先检查为什么不是这样......
@A.Wolff 你能在答案中告诉我这个吗?
@michaelmcgurk 你能“可能”回答任何以前作为评论提出的问题吗? SO 不仅仅是一个复制/粘贴代码服务,展示一些努力
如果是这种情况,请使用 jQuery 而不是 $
如果你能分享你的html代码和外部js以上是关于jQuery 修复“未捕获的 TypeError:$ 不是函数”错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误
JQuery UI'可拖动不是函数'未捕获的TypeError
Angular 2 从 Jquery 调用 Typescript 函数会导致未捕获的 TypeError
jQuery DataTables:未捕获的 TypeError:无法读取未定义的属性“mData”