Добрый день,
прошу простить за вопрос (я новичок). Не пойму как исправить ошибку в JQuery. При скроллинге в консоли появляется ошибка "Cannot read property 'add' of undefined".
Ссылка на сайт: adaptive.dkudrin.com
Очевидно проблема в селекторах.
Нет, не помогает. А по поводу classList.add есть информация, что в данном конкретном случае (многократное скриптовое добавление/снятие класса), он лучше, так как не добавляется повторно, если уже назначен элементу. См. тут: https://developer.mozilla.org/en-US/docs/Web/API/E...
dkudrin1: там где Вы говорите смотреть, нигде нет примера с использованием jQuery. Там чистый JS. Добавлять класс так как написал я, однозначно должно работать. Если оно найдет элементы удовлетворяющие условию .navMenuItem a оно превратит их в множество элементов с селектором .navMenuItem a.classUnactive для которых у вас уже и должно быть подготовлено css правило .navMenuItem a.classUnactive { //some styles } которое и должно сработать при назначении элементам отвечающим селектору .navMenuItem a.classUnactive
dkudrin1: Не помогает потому что:
- во-первых, ошибка в css для классов classActive и classUnactive (по-английски правильно inactive) - цвет для бекграунда в кавычках, из-за этого стиль не применяется;
- во-вторых, скрипт на смену этих классов работает только в одну сторону. Если скроллить страницу вверх - classUnactive не убирается.
Ну и бонусный совет: не стоит при ресайзе изменять DOM для того, чтобы поменять внешний вид меню. Лучше создать оба вида меню изначально и скрывать/показывать нужное меню переключением css класса.