Добрый день. Есть такой код, с помощью которого находятся все спрятанные блоки-галереи и активируются чекбоксы-"выключатели", ответственные за то, свернута галерея или развернута. DOM строится динамически из PHP (Битрикс, если это важно).
document.addEventListener('DOMContentLoaded', function() {
var galleries = document.querySelectorAll('.photogallery');
if (galleries) {
[].forEach.call(galleries, function (gallery) {
var toggle = gallery.querySelector('.photogallery-year-toggle');
var hiddenWrapper = gallery.querySelector('.photogallery-image-wrapper-hidden');
toggle.addEventListener('click', function (e) {
e.preventDefault();
hiddenWrapper.classList.toggle('photogallery-image-wrapper-hidden');
toggle.classList.toggle('photogallery-year-toggle-open');
});
});
};
});
Этот код отлично отрабатывает, но в консоли сразу по загрузке всегда появляется ошибка: TypeError: toggle is null. Т.е. браузер вроде бы думает, что элемент в переменной toggle не загрузился и отсутствует. Аналогичный код (классы только другие, понятное дело) на статическом сайте работает без ошибок. Это может быть как-то связано с генерацией HTML из PHP, несмотря на проверку 'DOMContentLoaded'? Как это пофиксить?