Autor | Zpráva | ||
---|---|---|---|
pako Profil * |
#1 · Zasláno: 27. 2. 2013, 16:24:10
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> var cont = document.getElementById('cont'); cont.addEventListener('click',prevent,false); function prevent(event) { alert(event.target.id); event.preventDefault(); } 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 |
#2 · Zasláno: 27. 2. 2013, 16:33:37
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 * |
#3 · Zasláno: 27. 2. 2013, 17:41:18
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 |
#4 · Zasláno: 27. 2. 2013, 19:34:02
pako:
„aj som skusal pripnut obsluhu priamo na vnutorny <div id="klik"> “
A čo jednoduché: document.getElementById('klik').onclick=function(){return false}; |
||
pako Profil * |
#5 · Zasláno: 27. 2. 2013, 20:44:03
_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 |
#6 · Zasláno: 27. 2. 2013, 20:55:10
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 * |
#7 · Zasláno: 27. 2. 2013, 21:29:46 · Upravil/a: pako
_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 Note: This method does not prevent the default action from being invoked; use Event.preventDefault() for that effect.
|
||
Časová prodleva: 12 let
|
0