Uncaught TypeError: $(...) is not a function while using morris.js chart
Uncaught TypeError: $(...) is not a function while using morris.js chart
我在我的网页上使用莫里斯图,但我一直收到错误消息:
Uncaught TypeError: $(...) is not a function
当您使用莫里斯图表进入此页面时,它也会在控制台中可见 - http://jqueryajaxphp.com/preview/charts/这里有什么问题?
通常在JQuery还未初始化时抛出这个错误...
检查您的代码,JQuery 是第一个加载的...类似:
<!-- First of all jquery... -->
<script type="text/javascript" src="/js/jquery/jquery.min.js"></script>
<!-- ... Then all the javascripts you need -->
<script type="text/javascript" src="yourScript.js"></script>
您混淆了两种不同的 jQuery 模式。
这个:
$(function($) { });
…当达到就绪状态时将调用一个函数。
这个:
(function ($, window, undefined) {
})(jQuery, window);
... 会将您的变量捕获在闭包中并增加 $
、window
和 undefined
具有正确值的机会。
您正在这样做:
$(function ($, window, undefined) {
})(jQuery, window);
… 它试图调用 $()
的 return 值,就好像它是一个函数,但事实并非如此。
要组合这两种模式,您可以这样做:
(function ($, window, undefined) {
$(function($) {
});
})(jQuery, window);
就是说,更典型的做法是相信 window
和 undefined
不会乱来并执行此操作:
jQuery(function($) {
});
我在我的网页上使用莫里斯图,但我一直收到错误消息:
Uncaught TypeError: $(...) is not a function
当您使用莫里斯图表进入此页面时,它也会在控制台中可见 - http://jqueryajaxphp.com/preview/charts/这里有什么问题?
通常在JQuery还未初始化时抛出这个错误...
检查您的代码,JQuery 是第一个加载的...类似:
<!-- First of all jquery... -->
<script type="text/javascript" src="/js/jquery/jquery.min.js"></script>
<!-- ... Then all the javascripts you need -->
<script type="text/javascript" src="yourScript.js"></script>
您混淆了两种不同的 jQuery 模式。
这个:
$(function($) { });
…当达到就绪状态时将调用一个函数。
这个:
(function ($, window, undefined) {
})(jQuery, window);
... 会将您的变量捕获在闭包中并增加 $
、window
和 undefined
具有正确值的机会。
您正在这样做:
$(function ($, window, undefined) {
})(jQuery, window);
… 它试图调用 $()
的 return 值,就好像它是一个函数,但事实并非如此。
要组合这两种模式,您可以这样做:
(function ($, window, undefined) {
$(function($) {
});
})(jQuery, window);
就是说,更典型的做法是相信 window
和 undefined
不会乱来并执行此操作:
jQuery(function($) {
});