Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

stopPropagation em eventos onChange

Eu entendi o que o Leonardo Negrão explicou em um outro post sobre o que é stopPropagation e o exemplo que ele deu para eventos de clique. Mas por quê usar o stopPropagation em eventos de onChange em um input?

Existe alguma chance desse efeito se propagar?

Ou o event.stopPropagation() é apenas uma boa prática quando estivermos lidando com eventos no geral?

2 respostas
solução!

Olá, Tiago, tudo bem?

Normalmente utilizamos o método stopPropagation quando sabemos que há um elemento pai com um listener que possa "ouvir" a propagação daquele evento, geralmente se tratando do evento onClick, como no exemplo que o Leonardo Negrão deu no outro tópico.

Entretanto, no caso desse curso, acredito que o instrutor tenha feito isso apenas para prevenir qualquer comportamento inesperado, mesmo que talvez não tenha sido necessário.

Existe alguma chance desse efeito se propagar?

Respondendo diretamente a sua pergunta, na verdade qualquer evento se propaga para outros elementos HTML caso não utilizemos o stopPropagation.

Mas nesse caso específico da aula, a única situação que geraria um comportamento inesperado (caso não utilizemos o stopPropagation) seria: caso um elemento pai de um input com um listener para o evento onChange (por exemplo, o form) também tivesse um listener para o onChange. Ainda que um form com um listener para um onChange não faça muito sentido, foi uma das únicas situações que consegui imaginar.

Sintetizando, minha dica pessoal é que você não precisa utilizar stopPropagation em todos os handlers de eventos, mas sim naqueles que você perceba que há um potencial risco na propagação do evento. E caso você não saiba se há um risco, você pode usar esse método apenas para prevenção.

Espero ter ajudado! Abraços e bons estudos :)

Entendido, Antônio! Ajudou sim. Valeu!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software