| Autor | Zpráva | ||
|---|---|---|---|
| __Martin Profil * |
#1 · Zasláno: 9. 2. 2008, 17:15:01
Ahoj,
zkouším teď framework mootools a není mi jasný zápis uvedený v příkladu http://docs.mootools.net/Element/Element-Event.js#Event.stop
Event.keys.whatever = 80;
$(myelement).addEvent(keydown, function(event){
event = new Event(event);
if (event.key == 'whatever') console.log(whatever key clicked).
});
při vytvaření instance třídy Event - předávám nějaký parametr "event", co to prosím je? Vůbec mi to není jasné. Díky moc |
||
| centi Profil |
#2 · Zasláno: 9. 2. 2008, 17:57:33
Druhý parameter funkcie addEvent je tzv. event handler. Teda metóda, ktorá bude obsluhovať udalosť, ktorá nastane pri stlačení klávesy. Takáto metóda (handler) má automaticky ako prvý parameter predaný objekt "event", v ktorom sú dostupné všetky údaje o vzniknutej udalosti (klávesa ktorú uživateľ stlačil, element, na ktorom udalosť vznikla a pod). Ten predávaný objekt si môžeš pomenovať akokoľvek. Zvykom je používať názvy ako "event", "evt", "e", napr. function(evt)...
No a v ďalšom zápise proste už len do Mootools triedy Event túto udalosť predáš ako parameter. Mootools tento predávaný event objekt asi ešte nejak spracúva, preto ten new Event. |
||
| ah01 Profil |
#3 · Zasláno: 9. 2. 2008, 18:01:54
Viděl bych to tak, že třída Event je wrapper nad objektem event, který ti vrací při události prohlížeč. Ty se pak nemusíš zabývat tím, jak co vrací který prohlížeč. Co jsem koukal, tak můžeš používat metodu funkce bindWithEvent. Pak dostaneš v handleru události rovnou instanci třídy Event.
PS: koukám že centi byl rychlejší, ale třeba ho doplním. |
||
| __Martin Profil * |
#4 · Zasláno: 9. 2. 2008, 18:39:33
Děkuji Vám obou. Chápu z toho všecho tak 90%. Ještě se zeptám pro upřesnění, ten objekt "event" předaný jako parametr metody obsahuje tedy údaje popsané výše. Ty údaje tam doplní prohlížeč?
|
||
| __Martin Profil * |
#5 · Zasláno: 9. 2. 2008, 18:59:57
už to tomu asi rozumim : ) ty údaje tam doplní funkce addEvent, je to tak?
|
||
| __Martin Profil * |
#6 · Zasláno: 9. 2. 2008, 19:07:27
Zkusil jsem si to na příkladu a řekl bych, že je to asi něco podobného jako:
window.onload = function() {
document.getElementById('odstavec').onclick = function(event) {
alert(event);
}
}
<p id="odstavec">Text</p>
|
||
| centi Profil |
#7 · Zasláno: 9. 2. 2008, 20:39:34
už to tomu asi rozumim : ) ty údaje tam doplní funkce addEvent, je to tak?
Nie, doplní ich tam prehliadač. Ostatne to ilustruje i tvoj nasledovný príklad, kde žiadna mootools funkcia nie je :) Btw doporučujem si nainštalovať do Firefoxu doplnok Firebug a tvoj príklad si upraviť tak, že namiesto alert(event); použiješ console.log(event); Vo Firebugu v záložke Cosnole potom uvidíš všetko, čo obsahuje tento konkrétny objekt event (po kliknutí na jeho záznam v Console), ktorý si vytvoril kliknutím na "odstavec". |
||
| __Martin Profil * |
#8 · Zasláno: 9. 2. 2008, 20:59:02
centi
Díky moc, firebud nainstalovaný mám, jen jsem ho deaktivoval. Vyzkouším to všechno |
||
|
Časová prodleva: 18 let
|
|||
0