Друзья, есть такая проблема.
Я в своей теме подключаю скрипты, в которых используется jquery
В my_theme.info прописываю scripts[] = assets/js/main.js
В друпале установил модуль jquery_update.
Но в консоли выдает ошибку - $ is not a function
В чем может быть ошибка?
Комментарии
В файле main.js.
А если серьезно в консоли может быть вполне указан файл, содержащий ошибку.
Сам файл вот
if ($(window).height() <= 800){
$('.big-slider-full-height').css("height","700px");
}
if ($(window).height() <= 700){
$('.big-slider-full-height').css("height","600px");
}
if ($(window).height() <= 600){
$('.big-slider-full-height').css("height","500px");
}
window.onresize = function(){
if ($(window).height() <= 800){
$('.big-slider-full-height').css("height","700px");
}
if ($(window).height() <= 700){
$('.big-slider-full-height').css("height","600px");
}
if ($(window).height() <= 600){
$('.big-slider-full-height').css("height","500px");
}
}
Ругается именно на то, что он не знает функцию $
Мне приходится в самой теме подключать jquery
scripts[] = libs/jquery-3.3.1.min.js
scripts[] = libs/jquery-migrate-3.0.1.min.js
Только тогда не ругается
Модуль jquery update обновляет jquery в пределах версии 1.*. Вы же используете 3 версию.
Перепишите ваш скрипт под версию 1.*, чтобы он не ругался.
Подключать jquery через тему, это плохой тон и может создать кучу проблем в будущем
Так же файлы js должны быть оформлены через behaviors.
'use strict';
Drupal.behaviors.ВАШЕИМЯ = {
attach: function (context, settings) {
// ваш код
}
};
})(jQuery);
Ок, спасибо