Я вижу по крайней мере 3 проблемы с этим кодом:
1) идентификатор элемента site-header
- не #site-header
, который является просто селектором CSS.
2) Вы смешиваете jQuery с vanilla JS - что само по себе не является ошибкой, но в объекте, возвращаемом вызовами getElementById
, нет метода addClass
.Вам нужно либо вызвать classList.add(...)
для этого объекта "элемента", либо (проще, так как вы уже используете jQuery) просто использовать jQuery: jQuery('#site-header').addClass('active');
(я подозреваю, что эта путаница с jQuery-или-не-причиной вызвала заблуждение "# "в вашем ванильном JS-коде.
3) Лучше всего оборачивать подобные вещи в функцию обратного вызова, передаваемую в document.ready()
jQuery, иначе слушатель события может даже не быть создан.(Я бы предположил, что объект document
, вероятно, существует в тот момент, когда выполняется этот код, так что это может не иметь значения, но это все же лучшая практика.)