Autor Zpráva
pako
Profil *
mam html:
<div id="cont">
    <a href="rev.html"><div id="klik">ABC</div></a>
    <a href="rev.html"><div id="klik2">DEF</div></a>
</div>
a javascript:
var cont = document.getElementById('cont');
cont.addEventListener('click',prevent,false);
function prevent(event) {
    alert(event.target.id);
    event.preventDefault();
}
ziva ukazka: http://jsfiddle.net/GLJ6T/
vsetko funguje, kliknutie na div nespusti odkaz. najprv som ale skusal pouzit event.stopPropagation(), ktore ale nefungovalo tak ako som si myslel - teda ze sa udalost click vobec nedostane k odkazu.


preco pouzitie event.stopPropagation nezabrani pokusu nacitat stranku z odkazu ?
Chamurappi
Profil
Reaguji na paka:
Protože bublání funguje směrem nahoru ve stromové hierarchii, takže stopPropagation brání rodičům <div>u, aby událost zachytili. Potomkům ne.
Mimochodem, addEventListener nefunguje ve starším Exploreru. Stejně tak event.preventDefault a event.stopPropagation.
pako
Profil *
Chamurappi:
to ma napadlo a aj som skusal pripnut obsluhu priamo na vnutorny <div id="klik"> ale aj vtedy sa snazi nacitat stranku z odkazu ak pouzijem event.stopPropagation
_es
Profil
pako:
aj som skusal pripnut obsluhu priamo na vnutorny <div id="klik">
A čo jednoduché:
document.getElementById('klik').onclick=function(){return false};
pako
Profil *
_es:
stacilo by ;)
v tejto chvili je to ale teoreticka otazka - mne staci, ze funguje preventDefault ale nechapem preco nefunguje stopPropagation - jednoducho nieco robim zle a neviem prist na to co.
_es
Profil
pako:
mne staci, ze funguje preventDefault
Vo všetkých prehliadačoch? Prečo ti nestačí, že „funguje“ vlastnosť onclick a return false?
pako
Profil *
_es:
vo vsetkych nie, ale to nesuvisi s otazkou...
jednoducho ma to zaujima - narazil som na problem, ktory si neviem nijak vysvetlit


takze nakoniec som to nasiel, sorry, ze som mrhal vasim casom...
stopPropagation
Prevents all other event listeners from being triggered, excluding any remaining candiate event listeners. Once it has been called, further calls to this method have no additional effect.
Note: This method does not prevent the default action from being invoked; use Event.preventDefault() for that effect.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: