- Я использую сайт WordPress.
- Включаю этот скрипт в шапку.
Когда скрипт загружается, я получаю такую ошибку:
TypeError: 'undefined' не является функцией (оценка '$ (document)')
Я понятия не имею, что вызывает это и что это вообще означает.
В firebug я получаю следующее:
$ не является функцией
Net
вкладке Firebug нет ошибок (убедитесь, что jQuery действительно загружается).Ответы:
Wordpress по умолчанию использует jQuery в режиме noConflict . Вам нужно ссылаться на него, используя
jQuery
имя переменной, а не$
, например, используйтеjQuery(document);
вместо того
$(document);
Вы можете легко обернуть это в самоисполняющуюся функцию,
$
чтобы она снова ссылалась на jQuery (и также избегала загрязнения глобального пространства имен), например(function ($) { $(document); }(jQuery));
источник
jQuery(document)
а не$(document)
куда хотите. Если вы действительно хотите использовать$
вместо этого, то приведенный выше сценарий просто создает функцию, которая принимает аргумент, а$
затем выполняет его, передаваяjQuery
; короче говоря, внутри функции$
указывает на jQuery, как и следовало ожидать.$(document).ready(function() { // code });
вместо твоей$(document);
... которая работала как чары.Используйте 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>
источник
Использовать это:
var $ =jQuery.noConflict();
источник
Попробуйте этот фрагмент:
jQuery(function($) { // Your code. })
У меня сработало, может быть, и вам поможет.
источник
У меня эта проблема была только в Chrome.
Я пробовал добавить
var $ =jQuery.noConflict();
непосредственно перед звонком
$(document).ready(function () {
Это сработало.
большое спасибо
источник
Также проверьте включение jQuery, за которым следуют некоторые компоненты / другие библиотеки (например, jQuery UI), а затем снова случайное включение jQuery - это переопределит jQuery и удалит помощники компонентов (например, .datepicker) из экземпляра.
источник
;(function($){ // your code })(jQuery);
Поместите свой js-код в закрытие выше, это должно решить проблему.
источник
Я бы использовал это
(function ($) { $(document); }(jQuery));
источник
Я также много раз сталкивался с такими проблемами в веб-разработке. На самом деле это не конфликт JS. Когда мы загружаем веб-сайт html в браузер, мы не сталкиваемся с такой ошибкой, но когда мы загружаем веб-сайт этого типа через localhost, мы сталкиваемся с такой проблемой. Это из-за localhost. Когда мы загружаем скрипты через localhost, он сканирует скрипт и выводит результат. Но когда мы не использовали localhost. Он просто сканирует вывод. Например, когда мы пишем PHP-код на стороне локального хоста и запускаем его без хоста, мы получаем ошибку. Но если код правильный и выполняется через хост, мы получаем фактический результат, а когда мы используем элемент inspect, мы получаем выходной код в формате HTMl, но не в формате PHP, это происходит из-за рендеринга кода.
Это ошибка рендеринга. Итак, чтобы исправить эту ошибку кода jquery, одно из решений может использовать этот метод.
jQuery(document).ready(function($){ /******** Body of Jquery Code*****/ });
Этот код регистрирует '$' как переменную функции, применяя jquery. В противном случае по умолчанию файл .js читается только как javascript.
источник
Я столкнулся с этой проблемой также при включении 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 () просто восстанавливает их.
источник
Вы можете использовать как jQuery, так и $ в приведенном ниже фрагменте. это сработало для меня
jQuery( document ).ready(function( $ ) { // jQuery(document) // $(document) });
источник
Вы можете передать $ в функции ()
jQuery(document).ready(function($){ // jQuery code is in here });
или вы можете заменить
$(document);
этимjQuery(document);
или вы можете использовать
jQuery.noConflict()
var jq=jQuery.noConflict(); jq(document).ready(function(){ jq('selector').show(); });
источник