TypeError: 'undefined' не является функцией (оценка ' $(document)')
- Я использую сайт WordPress.
- Я включаю этот скрипт в заголовок.
когда скрипт загружается, я получаю эту ошибку:
TypeError: 'undefined' не является функцией (оценка ' $(document)')
Я понятия не имею, что это вызывает или что это вообще значит.
в firebug, я получаю это:
$ не является функцией
14 ответов:
Wordpress использует jQuery в noConflict режим по умолчанию. Вы должны ссылаться на него с помощью
jQuery
В имя переменной, а не$
, например,jQuery(document);
вместо
$(document);
вы можете легко обернуть это в самоисполняющуюся функцию, чтобы
$
снова ссылается на jQuery (и также избегает загрязнения глобального пространства имен), например(function ($) { $(document); }(jQuery));
используйте jQuery
noConflict
. Это сделало чудеса для меняvar example=jQuery.noConflict(); example(function(){ example('div#rift_connect').click(function(){ example('span#resultado').text("Hello, dude!"); }); });
то есть, предполагая, что вы включили jQuery в свой HTML
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
попробуйте этот фрагмент:
jQuery(function($) { // Your code. })
Он работал для меня, может быть, это поможет вам тоже.
у меня была эта проблема только на Chrome.
Я пробовал добавлять
var $ =jQuery.noConflict();
как раз перед вызовом
$(document).ready(function () {
это сработало.
Спасибо большое
также проверьте включение jQuery, за которым следуют некоторые компоненты/другие библиотеки (например, jQuery UI), а затем случайно снова включите jQuery - это переопределит jQuery и отбросит помощники компонентов (например .datepicker)от экземпляра.
;(function($){ // your code })(jQuery);
поместите свой JS-код внутри закрытия выше, он должен решить проблему.
Я также сталкивался с такими проблемами много раз в web development carrier. На самом деле это не конфликт JS, когда мы загружаем html-сайт в браузер, мы не сталкиваемся с такой ошибкой, но когда мы загружаем этот тип веб-сайта через localhost, мы сталкиваемся с такой проблемой. Это из-за localhost. Когда мы загружаем скрипты через localhost, он сканирует скрипт и выводит результат. Но когда мы не использовали localhost. Он просто сканирует вывод. Пример, когда мы пишем php код putside The localhost и запускаем без хост мы получаем ошибку. Но если код верен и выполняется через хост, мы получаем фактический вывод, и когда мы используем элемент inspect, мы получаем выходной код в формате HTMl, но не в формате PHP, это связано с рендерингом кода.
Это ошибка рендеринга. Поэтому для исправления этих ошибок кода jquery одно из решений может использовать этот метод.
jQuery(document).ready(function($){ /******** Body of Jquery Code*****/ });
этот код регистрирует ' $ ' как переменную для функции, применяя jquery. Остальное по умолчанию .JS файл только читать как JavaScript.
Я столкнулся с этой проблемой также при включении jQuery в заголовок моей страницы, не понимая, что хост уже включил его на странице автоматически. Поэтому загрузите свою страницу в реальном времени и проверьте источник, чтобы узнать, связан ли jQuery.
две вещи:
- убедитесь, что перед вашим $(документом) добавлена библиотека jQuery.
- затем просто измените все " $ " с помощью: jQuery , как и предыдущие комментарии.
обернуть весь скрипт между этим...
<script> $.noConflict(); jQuery( document ).ready(function( $ ) { // Code that uses jQuery's $ can follow here. }); </script>
многие библиотеки JavaScript используют $ в качестве имени функции или переменной, как и jQuery. В случае jQuery $ - это просто псевдоним для jQuery, поэтому все функции доступны без использования $. Если вам нужно использовать другую библиотеку JavaScript вместе с jQuery, верните управление $ back в другую библиотеку с вызовом $.noConflict(). Старые ссылки $ сохраняются во время инициализации jQuery; noConflict () просто восстановить их.