Закрыть

WordPress — Если jQuery не работает

Данная статья призвана помочь, если вы ищете ответы на следующие вопросы касательно системы управления контентом WordPress и библиотеки jQuery: не работает, ошибка, not defined, is not a function, noconflict.

Рассмотрим самые часто встречающиеся ошибки jQuery на WordPress и их решения. 

Ошибка jQuery "Uncaught TypeError: $ is not a function" на WordPress

Самая частая ошибка jQuery на WordPress выглядит следующим образом:

Uncaught TypeError: $ is not a function

Причина ошибки

Библиотека jQuery в WordPress загружается в режиме «noConflict». Это сделано чтобы устранить возможные проблемы с другими библиотеками которые используют символ $ и могут использоваться в WordPress.

Решение ошибки

Вместо символа $, нужно писать слово jQuery, например, вместо:

Не будет работать

$('body').text('WordPress и jQuery');

Будет работать

jQuery('body').text('WordPress и jQuery');

Внимание, пишите слово jQuery правильно, - не jquery а jQuery. Иначе получите ошибку приведенную в этой статье ниже и еще долго будете ломать голову пытаясь понять в чем проблема =). Символ $ нужно заменять словом jQuery постоянно, что весьма и весьма не удобно. Чтобы комфортно решить проблему, лучше обернуть ваш код в функцию:

(function($) { 
	 $('body').text('WordPress и jQuery');
	 // тут и далее можно спокойно использовать символ $
})(jQuery);

Внутри этой конструкции символ $ будет работать так же, как если бы вы писали jQuery. Но помните, на всякий случай, лучше использовать событие .ready для элемента document, чтобы вызывать функцию после загрузки DOM структуры страницы. В противном случае может случится так, что элемент к которому вы хотите применить ваш код, еще не будет загружен. Вы можете даже не получить ошибки об этом. Вот финальная, рекомендуемая обертка:

jQuery(document).ready(function($) { 
	$('body').text('WordPress и jQuery'); 
	// тут и далее можно спокойно использовать символ $ 
});

Ошибка jQuery "Uncaught ReferenceError: ... is not defined" на WordPress

Это вторая по частоте ошибка jQuery на WordPress:

Uncaught ReferenceError: $ is not defined
Uncaught ReferenceError: jQuery is not defined

Причина ошибки

Вы банально не подключили библиотеку jQuery, подключили ее после того места где прописали ваш код или написали jquery вместо jQuery.

Решение ошибки

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

wp_enqueue_script('jquery');

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