Этого легко избежать, установив children.style.display
в пустую строку вместо назначения none
, когда вы хотите скрыть дочерние элементы.
EDIT:
Требуется исправление: вместо неопределенного необходимо назначить пустую строку для children.style.display
, чтобы отбросить переопределение (см. Текст, выделенный курсивом - мне пришлось это исправить).
Фрагмент кода должен выглядеть следующим образом:
var parent = document.querySelector('nav > ul > li');
var children = document.querySelector('nav > ul > li > ul');
parent.addEventListener('click', function () {
alert(children.style.display);
if (children.style.display == 'block') {
children.style.display = '';
} else {
children.style.display = 'block';
}
}, true);