Teised vastused ütlesid juba ära, kuidas asi käib, aga ma kirjutaks siin mõne sõnaga asju natuke rohkem lahti.
inline sündmuste defineerimise näol on tegu DOM level 0 sündmuste haldusega. Erinevalt DOM level 2 sündmustest on level 0 puhul tegu ainult kahetasemelise haldajaga - esiteks kasutaja poolt seatud tegevus onclick rakendumisel ja teiseks brauseri enda poolt kasutatav native tegevus. Sellisel juhul saab sündmuse edasist toimimist peatada, kui kasutaja poolt loodud onclick sündmus tagastab mittetõese väärtuse (peab olema false, mitte undefined vms).
Seega kui HTML koodis on defineeritud inline sündmus
<a onclick="tee_midagi;">
muudab brauser selle DOM level 0 sündmuseks
element.onclick = Function("tee_midagi;").bind(element)
ja kui kasutaja lingil klikib, siis käivitabki
if(element.onclick()!==false)
element.fireNativeAction()
Nii et kui kasutaja seatud onclick sündmus tagastab väärtusena false, ei hakka brauser kunagi native tegevust rakendama (lingi puhul oleks selleks siis lehelt minema navigeerimine).
DOM level 2 (ja ka 3) sündmuste korral on asi selles suhtes paindlikum, et kasutaja saab lisada ja eemaldada suvalise arvu tegevusi sama sündmuse jaoks vs. DOM level 0 juures ainult üks kasutaja määratud tegevus. Kuid sellisel juhul tegevuste peatamiseks kõigest mittetõese väärtuse tagastamisest ei piisa. Seal tuleb spetsiaalselt öelda, et nüüd rohkem sama sündmuse tegevusi ei käivitata
element.addEventListener("click", function(event){
tee_midagi;
event.stopPropagation(); // peatab sündmuse edasise töötlemise
}, false);