it-swarm.com.ru

TypeError: 'undefined' не является функцией (вычисляется '$ (document)')

  1. Я использую сайт WordPress.
  2. Я включаю этот скрипт в шапку.

Когда скрипт загружается, я получаю эту ошибку:

TypeError: 'undefined' не является функцией (вычисляется '$ (document)')

Я понятия не имею, что вызывает это или что это даже означает.

В firebug я получаю это:

$ не является функцией

137
dcolumbus

WordPress по умолчанию использует jQuery в режиме noConflict . Вы должны ссылаться на него, используя jQuery в качестве имени переменной, а не $, например использование

jQuery(document);

вместо

$(document);

Вы можете легко обернуть это в самовыполняющуюся функцию, чтобы $ снова ссылался на jQuery (и также избегал загрязнения глобального пространства имен), например,.

(function ($) {
   $(document);
}(jQuery));
239
El Yobo

Используйте 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>
24
Leno Britto

Использовать этот:

var $ =jQuery.noConflict();
15
Suman Biswas

У меня была эта проблема только на Chrome.

Я пытался добавить

var $ =jQuery.noConflict();

как раз перед звонком

$(document).ready(function () {

Это сработало.

Большое спасибо

11
Le_Dhul

Попробуйте этот фрагмент:

jQuery(function($) {
  // Your code.
})

Это сработало для меня, может быть, это поможет вам тоже.

11
Gurpreet Dhanoa

Также проверьте наличие jQuery, за которым следуют некоторые компоненты/другие библиотеки (например, jQuery UI), а затем снова случайно включите jQuery - это переопределит jQuery и удалит помощники компонентов (например, .datepicker) из экземпляра.

6
agrath
 ;(function($){
        // your code
    })(jQuery);

Поместите свой код js в закрытие выше, это должно решить проблему.

4
Bikram Shrestha

Я бы использовал это

(function ($) {
   $(document);
}(jQuery));
4
JoT

Я также много раз сталкивался с такими проблемами в сфере веб-разработок. На самом деле это не конфликт JS. Когда мы загружаем html-сайт в браузер, такой ошибки не возникает, но когда мы загружаем веб-сайт такого типа через localhost, мы сталкиваемся с такой проблемой. Это из-за localhost. Когда мы загружаем скрипты через локальный хост, он сканирует скрипт и выводит результат. Но когда мы не использовали localhost. Он просто сканирует вывод. Например, когда мы пишем php-код на локальный хост и работаем без Host, мы получаем ошибку. Но если код правильный и выполняется через Host, мы получаем фактический вывод, а когда мы используем inspect element, мы получаем выходной код в формате HTMl, но не в формате PHP, это происходит из-за рендеринга кода.

Это ошибка рендеринга. Таким образом, чтобы исправить эту ошибку кода jquery, одним из решений может быть использование этого метода.

jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});

Этот код регистрирует $ как переменную для функции, применяя jquery. Иначе по умолчанию файл .js читается только как javascript.

2
Rajan Lama

Вы можете передать $ в функцию ()

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();
});
1
Ganesh

Две вещи:

  1. Убедитесь, что у вас есть библиотека jQuery, добавленная до вашего $ (документа).
  2. Затем просто измените все "$" с помощью: jQuery, как и предыдущие комментарии.
1
Jorge Alejandro Inturias

обернуть весь сценарий между этим ...

<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 () просто восстанавливает их.

1
Jitendra Damor

Вы можете использовать как jQuery, так и $ в приведенном ниже фрагменте. это сработало для меня

jQuery( document ).ready(function( $ ) {
  // jQuery(document)
  // $(document)
});
1
Kalpesh Prajapati

Я столкнулся с этой проблемой также, когда включил jQuery в заголовок своей страницы, не понимая, что Хост уже автоматически включил его в страницу. Так что загружайте страницу вживую и проверяйте источник, чтобы увидеть, связан ли jQuery.

1
FrostyL