| 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: 14 let
|
|||
0