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> 
Другие вопросы по тегам