Autor | Zpráva | ||
---|---|---|---|
Ostřa Profil * |
#1 · Zasláno: 19. 5. 2009, 23:35:41
Jde nastavit více funkcí pro jednu událost jednoho prvku? Jaký je zápis?
|
||
Chamurappi Profil |
#2 · Zasláno: 19. 5. 2009, 23:42:33
Reaguji na Ostřu:
Ano. Zápis je úplně stejný, jako když voláš více funkcí ve funkci. |
||
Ostřa Profil * |
#3 · Zasláno: 20. 5. 2009, 15:16:20
Třeba <div onmouseover="this.className='class';alert('neco')">Text</div>
? |
||
Chamurappi Profil |
#4 · Zasláno: 20. 5. 2009, 15:18:38
Reaguji na Ostřu:
Třeba. Není jednodušší si to vyzkoušet, než se ptát? |
||
Yur4Y Profil |
#5 · Zasláno: 20. 5. 2009, 15:30:00
Nezabúdajte, že keď pripájate 'obsluhu' udalosti nie pomocou atribútu, ale v <script>e klasickou metódou:
objekt.onudalost = function() { ... } Tak sa používa iba tá posledná, ostatné sa prepisujú. Čiže ak použijete niečo takéto: objekt.onmouseover = function() { alert('foo') } objekt.onmouseover = function() { alert('bar') } Zato pri použití addEventListener: objekt.addEventListener('mouseover', function() { alert('foo') }, true) objekt.addEventListener('mouseover', function() { alert('bar') }, true) (Snáď som nebol veľmi mimo témy) |
||
Chamurappi Profil |
#6 · Zasláno: 20. 5. 2009, 16:03:49 · Upravil/a: Chamurappi
Reaguji na Yur4Y:
„keď pripájate 'obsluhu' udalosti nie pomocou atribútu“ Zjevně ji pomocí atributu připojuje. „Tak sa používa iba tá posledná, ostatné sa prepisujú.“ Většinou není potřeba přiřazovat více navzájem nazávislých akcí k jedné události. A kdyby bylo, tak: var puvodniMouseOver = objekt.onmouseover; objekt.onmouseover = function(e) { if(puvodniMouseOver) puvodniMouseOver.apply(this, e); alert("bar"); }; Škoda, že nejde funkce sčítat, objekt.onmouseover += function() {…} by bylo hezké. „Zato pri použití addEventListener […] Akurát to nefunguje v IE.“ Řekl bych, že postupy, které běží všude, jsou životaschopnější. |
||
Časová prodleva: 15 let
|
0