EventListener не работает до определенной функции - PullRequest
0 голосов
/ 12 октября 2019

Событие 'click' не происходит, когда функция put ставится после:

<pre>
 <body> 
   <section class="page">
      <label for="name">Nome: </label>
      <input type="text" name="nome">
      <input type="button" value="Adicionar na lista">
   </section>

   <script>
      var autores = [{nome:'CCarlos'},{nome:'Daniel'}];
      var botao = document.querySelector('input[type=button]');
      botao.addEventListener('click',aviso);
      imprimir();
      function aviso(){
         alert('aasf');
      }

      function imprimir(){
         var pagina = document.querySelector('.page');
         for(i in autores){
           enter code herepagina.innerHTML += `<p>${autores[i].nome}</p>`;
         }
      }   
   </script>
</body>

, и когда я удаляю ее, я просто отлично работаю, не имею ни малейшего представления, почему это происходит

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

вы меняете html, используя innerHTML +=, который уничтожает все внутри pagina и создает все заново. Это означает, что ваш слушатель событий идет до свидания.

0 голосов
/ 12 октября 2019

Это ваш настоящий код? у вас есть эта фактическая строка или это просто ошибка копирования / вставки?

enter code herepagina.innerHTML += `<p>${autores[i].nome}</p>`;

, если так, я думаю, у вас есть какая-то синтаксическая ошибка в консоли вашего браузера. Установите значение

pagina.innerHTML += `<p>${autores[i].nome}</p>`;

, если это была ошибка копирования / вставки, проверьте консоль браузера, если есть какая-либо ошибка

...