EventListener 在某些功能之前不起作用

当在之后放置一个函数时,“click”事件不会发生:


<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>

当我删除时,我工作得很好,不知道为什么会发生这种情况


UYOU
浏览 301回答 2
2回答

慕姐8265434

您正在更改 html,使用innerHTML +=它会破坏内部的所有内容pagina并重新创建所有内容。这意味着您的事件侦听器再见。

红糖糍粑

那是你的实际代码吗?你有这个实际的行还是只是一个复制/粘贴错误?enter&nbsp;code&nbsp;herepagina.innerHTML&nbsp;+=&nbsp;`<p>${autores[i].nome}</p>`;如果是这样,我猜您在浏览器的控制台上有一些语法错误。改成pagina.innerHTML&nbsp;+=&nbsp;`<p>${autores[i].nome}</p>`;如果是复制/粘贴错误,请检查浏览器的控制台是否有任何错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript