Показать сообщение отдельно
  #1 (permalink)  
Старый 31.08.2018, 15:20
Интересующийся
Отправить личное сообщение для __Alex__ Посмотреть профиль Найти все сообщения от __Alex__
 
Регистрация: 18.06.2018
Сообщений: 21

Listener's - срабатывает только последний
Добрый день.

Мне нужно вставлять в DOM, узлы в виде строк, и привешивать к ним listener's.

Вставляю через innerHTML, на практике, работают listener's только из последней вставки. Упрощённо:
<div id='main'></div>
<div id='out'></div>

    <script>
        function out(data) {
            document.getElementById('out').innerHTML += data;
        }

        var main = document.getElementById('main');

        function module1() {
            main.innerHTML = '<div id="first">Some text, id=first </div><br />';
            document.getElementById('first').addEventListener('click', function() {
                out('clicked on first id ');
            });
        }

        function module2() {
            main.innerHTML += '<div id="second">Some text, id=second </div><br />';
            document.getElementById('second').addEventListener('click', function() {
                out('clicked on second id ');
            });
        }

        module1();
        module2();
    </script>


Возможно при применении +=innerHTML затираются более ранние listener's? Но в документации ничего не нашёл...

Как это исправить / решить / обойти?
Ответить с цитированием