клика по элементу, который, в свою очередь, добавляет другой слушатель события на документ. Проблема в том, что обработчик на документе срабатывает сразу, так как событие клика всплывает. Соответственно, использовано решение как на скриншоте.
Есть ли другой вариант добавления слушателя после окончания всплытия? stopPropogation не вариант, так как события должны всплывать до документа для других обработчиков.
Почему stopPropagation не вариант? const btn = document.createElement("button") btn.onclick = e => { console.log("btn click") e.stopPropagation() document.addEventListener("click", e => { console.log("document click") }) } document.body.appendChild(btn) В данном случае stopPropagation будет переставать всплывать только btn.onclick, остальные события никак не связаны с этим обработчиком
Обсуждают сегодня