Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley Santos

Sobre addEventListener

Recommended Posts

Eu tenho uma pergunta meio "noob" sobre o assunto, já pesquisei e li uns artigos porém não ficou muito claro,  então vamos lá.

Neste exemplo aqui: https://jsfiddle.net/wessleysanttos/gk7w5h1u/

 

Eu tenho uma tag <a> que inicializa com a página, e tem um botão que adiciona outras tag <a> na página. 

E no JS ele fica escultando o click nos elemento <a>, certo?

Porque o <a> que foi iniciado com a página funciona e os outros que eu adicionei apos a página ser carregada não funciona?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre esse assunto eu não sei te explicar direito, mas para ficar sempre escutando os novos elementos que quero executar um evento eu faço assim : https://jsfiddle.net/wessleysanttos/gk7w5h1u/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, o link que tu postou é o mesmo que o meu, tu precisa apertar em "update" ou "save" lá encima para salvar as alterações.

Ou se quiser já postar aqui como tu faz para escultar os eventos. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

https://jsfiddle.net/gk7w5h1u/1/   

foi mau rsrs

1 minuto atrás, wessleysanttos disse:

Amigo, o link que tu postou é o mesmo que o meu, tu precisa apertar em "update" ou "save" lá encima para salvar as alterações.

Ou se quiser já postar aqui como tu faz para escultar os eventos. 

Esqueci de dar update

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisem por event delegate. Isso acontece porque o momento em que o evento foi adicionado os elementos ainda não existiam.

Ai você tem duas soluções:

-> Adicionar o evento para o elemento que for criado assim que ele for criado

-> Escutar o evento no elemento pai deles: que é se valer da propagação do evento para capturar o evento no pai e poder "fingir" que você escutou do filho.


Enfim, pesquisem por event delegate que vocês vão entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhh, agora eu entendi melhor sobre isso. 

@William Bruno, então nessa situação desta forma seria uma das soluções né?

https://jsfiddle.net/wessleysanttos/qfb8um8j/

 

E valeu @Douglas Julião , dessa forma que tu citou  também resolve o problema. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, isso aqui:

 

$("#grid").on('click', 'a', function(){

 

é o event delegation do jQuery.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.