Подтвердить что ты не робот

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

У меня может быть ошибка в документе .js в теме, которую у меня есть:

$('.tagcloud a').wrap('<span class="st_tag" />');

Я пытаюсь его решить, но я не программист, поэтому я не знаю, как это сделать. Сайт таков: http://www.framerental.com.

4b9b3361

Ответ 1

Вы используете jQuery.noConflict(); So $ is undefined.

Подробнее об этом можно прочитать здесь docs

Попробуйте изменить свой код таким образом (добавьте знак $ в готовую):

jQuery(document).ready(function($) {
    // Code that uses jQuery $ can follow here.
});

Ответ 2

Ошибки функций являются общими для почти всех систем управления контентом, и есть несколько способов, которыми вы можете это сделать.

  • Оберните свой код, используя:

    <script> 
    jQuery(function($) {
    
    YOUR CODE GOES HERE
    
    });
    </script>
    
  • Вы также можете использовать jQuery API, используя noConflict();

    <script>
    $.noConflict();
    jQuery( document ).ready(function( $ ) {
    // Code that uses jQuery $ can follow here.
    });
    // Code that uses other library $ can follow here.
    </script>
    
  • Другой пример использования noConflict без использования готового документа:

    <script>
    jQuery.noConflict();
        (function( $ ) {
            $(function() { 
                // YOUR CODE HERE
            });
         });
    </script>
    
  • Вы даже можете создать свой псевдоним, чтобы избежать конфликтов:

    var jExample = jQuery.noConflict();
    // Do something with jQuery
    jExample( "div p" ).hide();
    
  • Еще одним более длинным решением является переименование всех ссылок $в jQuery:

    $( "div p" ).hide(); до jQuery( "div p" ).hide();

Ответ 3

Вместо этого:

$(document).ready(function() { });

Вы должны делать это:

jQuery(document).ready(function($) {

    // your code goes here

});

Это потому, что WordPress может использовать $для чего-то другого, кроме jQuery, в будущем или сейчас, и поэтому вам нужно загрузить jQuery таким образом, что $можно использовать только в обратном вызове документа jQuery.

Ответ 4

Либо вы не включаете jquery toolkit/lib, как некоторые предположили, либо существует конфликт. Чтобы проверить: включить jQuery и протестировать следующим образом:

console.log($);
console.log($ === jQuery);

Если $ не undefined, а $ === jQuery log false, у вас определенно есть конфликт на ваших руках. Замена вашего $ на jQuery решает это, но это может быть довольно утомительным (все, что лишний ввод...). Обычно я запускаю свои скрипты с $jq = _$ = jQuery;, чтобы по крайней мере иметь более короткую ссылку на объект jQuery.




















































Ответ 5

Просто добавьте это:

<script>
var $ = jQuery.noConflict();
</script>

в тег заголовка в header.php. Или в случае, если вы хотите использовать знак доллара в области администратора (или где-нибудь, где header.php не используется), прямо перед местом, которое вы хотите использовать.

(Возможно, есть некоторые конфликты, о которых я не знаю, протестируйте их и, если есть, используйте другие предлагаемые здесь решения или по ссылке ниже.)

Источник: http://www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/

Ответ 6

Я добавил пользовательский script файл, загруженный в конце раздела head, и вставил сверху вверх:

(function (jQuery) {
    window.$ = jQuery.noConflict();
})(jQuery);

(Это модификация ответа Fanky)

Ответ 7

Помимо noConflict, это также полезно:

(function( $ ) {
    // Variables and DOM Caching using $.
    var body = $('body');
    console.log(body);
})( jQuery );

Ответ 8

Если вы включили jQuery, может возникнуть конфликт. Попробуйте использовать jQuery вместо $.

Ответ 9

Я смог решить эту проблему очень просто, просто wp_enqueue_script("jquery"); jQuery в очередь wp_enqueue_script("jquery");

Ответ 10

jQuery может отсутствовать.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>