Bardzo prosty przykład, czym jest propagacja eventów oraz jak ją zatrzymać. Do dzieła!
Kodzik do przetestowania:
<p onclick="alertPara();">Bla bla bla <span onclick="alertSpan();">im in span</span> bla bla</p>
<script>
function alertPara(){
alert("Para clicked");
}
function alertSpan(e){
alert("span clicked");
}
</script>
Kliknięcie spana wywołuje dwa eventy, idąc z zasadą capturing, czyli od dołu (alertSpan) do góry (alertPara).
Jak to zatrzymać? Cóż, mamy metodę eventu stopPropagation:
<p onclick="alertPara();">Bla bla bla <span id="span">im in span</span> bla bla</p>
<script>
function alertPara(){
alert("Para clicked");
}
document.getElementById("span")
.addEventListener("click", function(e){
e.stopPropagation();
alert("SPAN CLICKED");
});
</script>