Cannot read property 'addEventListener' of null

306
24 декабря 2017, 10:47

var login = document.getElementById('log-in'); 
var front = document.querySelector('.user-front'); 
var back = document.querySelector('.user-login'); 
var humburger = document.getElementById('navigation__humburger'); 
 
 
 
// hamburgerMenu 
humburger.addEventListener('click', () => { 
    if (humburger.classList.contains('navigation__humburger_active')) { 
       humburger.classList.remove('navigation__humburger_active'); 
    } else { 
        humburger.classList.add('navigation__humburger_active'); 
 
    } 
}); 
 
//Log-in 
login.addEventListener('click',function () { 
    front.style.cssText='transform: rotateY(180deg) translate(50%,-50%); \ 
    backface-visibility: hidden; \ 
    transition: 1s; '; 
    back.style.cssText='transform: translate(-50%, -50%);  '; 
    login.style.display = 'none'; 
});

у меня дву разные функции на события по клику, одна работает , другая нет но если поменять местами то наоборот вторая которая стала первой работает, а первая нет. Обе эти функции написаны для разных страниц HTML., видимо в этом проблема. Интерпретатор спотыкается и cannot read property addeventlistener of null? но как иначе сделать?не писать же для каждой страницы отдельный скрипт?

Answer 1

Ответ очень простой, делайте проверку, перед тем, как добавлять слушатель на элемент.

Например перед строками, где вы добавляете слушатель, сделайте что-то в этом роде:

if(humburger){
   humburger.addEventListener....

}

И также для второго случая

READ ALSO
Допустима ли такая запись?

Допустима ли такая запись?

Допустима ли такая запись?

229
Не работают ссылки Angular вставленные js

Не работают ссылки Angular вставленные js

Есть приложение Angular 4В нем не работаю ссылки вставленные js-ом

273
Как отключить переключение полей tab'ом

Как отключить переключение полей tab'ом

Всем доброго времени суток!

328
как запустить dev-server у @symfony/webpack-encore под Homestead в Vagrant?

как запустить dev-server у @symfony/webpack-encore под Homestead в Vagrant?

Пытаюсь поднять Symfony 3 на Homestead в VagrantНо не получаю доступ к файлам frontend'а запуская npm run dev-server

221