@VitStar

ReferenceError: $ is not defined ошибка в WordPress?

Добрый день! Сверстал шаблон меню работает нормально.
Начал натягивать эту верстку на wp возникла проблема не работает меню.
В консоле пишет ReferenceError: $ is not defined
Код этого файла
$(document).ready(function(){ 
	var touch 	= $('#touch-menu');
	var menu 	= $('.menu');

	$(touch).on('click', function(e) {
		e.preventDefault();
		menu.slideToggle();
	});
	
	$(window).resize(function(){
		var w = $(window).width();
		if(w > 767 && menu.is(':hidden')) {
			menu.removeAttr('style');
		}
	});
});

Причем он везде ругается на анонимную функцию.

В чем может быть проблема ?
  • Вопрос задан
  • 7817 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Перед тем местом где у вас подключен этот скрипт, подключите jQuery. Например так:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
EaGames
@EaGames
Front-end developer
заключите ваш код в:
(function($) {
//тут ваш код
})(jQuery);

и все заработает
Ответ написан
Apathetic
@Apathetic
Frontend
Считаю важным упомянуть, что jQuery в WP по дефолту работает в режиме noConflict, который отключает использование символа $ в качестве шортката функции jQuery().
Ответ, который вы отметили правильным, таковым не является, в отличие от ответа Сергей. Действительно, лучший выход - это инкапсуляция. Хотя есть и другие способы. К примеру, можно в начале вашего скрипта написать одну строчку:
var $ = jQuery;
Ответ написан
Комментировать
Ivanq
@Ivanq
Знаю php, js, html, css
Ошибка банальная. Даже несколько.
Проверь, подключен ли jQuery.
Вторая строчка снизу - лишняя точка с запятой
Я jQuery особо не знаю, но может, стоит забрать "touch" в кавычки?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы