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”

jQuery $.ajax 和 jQuery UI 对话框:未捕获的 TypeError:非法调用?

jQuery Datatables 错误(未捕获的 TypeError:$ 不是函数)