O borbulhamento dos eventos no javascript é simples de se entender.
Quando estipulamos um manipulador para um elemento, como o click, por exemplo, ele é acionado quando o elemento é clicado.
Mas não é somente isso que ocorre quando o elemento é clicado.
Depois de acionado o click do elemento atual então é checado se o Pai desse elemento também tem um manipulador igual. Caso tenha, ele também é invocado causando assim um 'borbulhamento' nos eventos que percorre do Elemento até o raiz do DOM.
Esse borbulhamento pode ser visto clicando na imagem desse exemplo simples.
http://alantavares.com.br/exemplos/javascript/bubbling/
Neste exemplo é atribuído um evento de click para todos elementos da página.
Podemos ver claramente os eventos se propagando para o topo do DOM.
Quando clicanos na imagem os eventos que setamos para os seus ancestrais também são chamados, o que faz com que apareçam na tela todos os elemetos.
Simples não...
No Modelo de Eventos DOM Nível 2 existe mais uma fase, a fase de captura. Ela é setada apenas pelos navegadores que suportam o método addEventListener.
O borbulhamento é um fator simples que realmente é interessante que saibamos, pois se algum dia precisarmos, podemos recorrer a ele para dar aquela mãozinha e henriquecer mais ainda nossa aplicação.
Então é isso pessoal... Até mais...