Задать вопрос
@rukzen

Error: Cannot read property 'style' of null — как решить эту проблему?

Начнём с того что я полный 0 в JS и сейчас только начал учиться что то создавать.

Делаю небольшой сайтик, в котором при нажатии на одну кнопку, показывалось одно меню, а при нажатии нажатии на другую, так же показывалась другая графа меню.
Оба меню первоначально спрятаны.

Скопировал на этом сайте код, всё вроде б настроил, но всё же мне пишет ошибку NULL (Error: Cannot read property 'style' of null)

Понимаю что вопрос очень простой для людей разбирающихся в данной тематике. Но почему то в этом мне не помогает гугл )))

var popup = document.querySelector('.popup');
var open = document.querySelector('.open');

popup.style.display = 'none';

var popup2 = document.querySelector('.popup2');
var open2 = document.querySelector('.open2');

popup2.style.display = 'none';


open.addEventListener("click",      function() {

    if(popup.style.display == 'none')  popup.style.display = 'block';
    else popup.style.display = 'none';
    
  });
  
open2.addEventListener("click", function() {
    
    if(popup2.style.display == 'none')  popup2.style.display = 'block';
    else popup2.style.display = 'none';
    
  });


Можете подсказать как её исправить.
  • Вопрос задан
  • 6597 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Какая-то из переменных popup или popup2 равняется null.
Это произойдёт, если querySelector не нашла элемента по заданному селектору.
Значит на момент вызова querySelector в DOM отсутствовал элемент с классом popup или popup2.
По хорошему, такую инициализацию JS надо проводить после загрузки всего документа, то есть по событию DOMContentLoaded.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Beercokol
У тебя есть элементы на странице с классом popup?
Ответ написан
@3rr0r
У меня была такая же проблема. Я решил её перестановкой скрипта с кодом из head в самый низ body.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы