Помогите исправить ошибки в консоли браузере в JS файле
Всем доброго времени суток!
Есть сайт maxg5.ru В консоли есть несколько ошибок в файле priority-menu.js. Из за этих ошибок не корректно отображается список меню в мобильной версии. Точнее не в том порядке, который задан в админке. В консоли пишется что ошибка в этом коде:
var visibleList = container.parentNode.querySelector('.main-menu[id]');
var hiddenList = visibleList.parentNode.nextElementSibling.querySelector('.hidden-links');
var toggleButton = visibleList.parentNode.nextElementSibling.querySelector('.main-menu-more-toggle');
Как я понимаю сейчас структура HTML кода меню не соответствует JS коду, в котором ошибка. Но как исправить не знаю. Подскажите пожалуйста! |
main-menu[id] - что за странное имя класса? Но даже если и есть такой, то по такому селектору элемент не получить, нужно экранировать квадратные скобки вот так:
var visibleList = container.parentNode.querySelector('.main-menu\\[id\\]');
А при вашем селекторе visibleList будет равен null со всеми вытекающими последствиями. |
Цитата:
maxg5, вам нужно проверять есть ли nextElementSibling, и только потом производить дальнейшие действия!
var visibleList = container.parentNode.querySelector('.main-menu[id]');
var sibling = visibleList.parentNode.nextElementSibling;
if(!sibling) return; // или что сделать, если нет такого?
var hiddenList = sibling.querySelector('.hidden-links');
var toggleButton = sibling.querySelector('.main-menu-more-toggle');
if(!hiddenList || !toggleButton) return; // или что сделать, если нет такого?
|
Цитата:
|
| Часовой пояс GMT +3, время: 12:49. |