Uncaught TypeError: $(...) не является функцией при использовании диаграммы morris.js
Я использую диаграмму Морриса на своей веб-странице и получаю сообщение об ошибке:
Uncaught TypeError: $(...) is not a function
Это также видно в консоли, когда вы входите на эту страницу с диаграммами Морриса - http://jqueryajaxphp.com/preview/charts/ что здесь не так?
2 ответа
Вы смешиваете два разных шаблона jQuery.
Это:
$(function($) { });
… Вызовет функцию, когда наступит состояние готовности.
Это:
(function ($, window, undefined) {
})(jQuery, window);
... заманивает ваши переменные в замыкание и увеличивает шансы $
, window
а также undefined
иметь правильное значение.
Вы делаете это:
$(function ($, window, undefined) {
})(jQuery, window);
... который пытается вызвать возвращаемое значение $()
как будто это была функция, а это не так.
Чтобы объединить два шаблона, вы должны сделать это:
(function ($, window, undefined) {
$(function($) {
});
})(jQuery, window);
Тем не менее, более типично просто доверять window
а также undefined
не будем возиться и делать это:
jQuery(function($) {
});
Обычно эта ошибка выдается, когда 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>