Autor | Zpráva | ||
---|---|---|---|
Kryvosa Profil * |
#1 · Zasláno: 8. 3. 2015, 20:38:05
Mám takový podle mě začátečnický dotaz... Existuje něco jako
document.onAction , který by se aktivoval při jakékoli akci uživatele, a díky kterému buch mohl pomocí jednoduché podmínky function(e){if(typeof e!="undefined")window.event=e} sjednotit mozillu/firefox (Pořád nevím jestli je to to, ono nebo oboje :D) s ostatními prohlížeči.
Fungovalo by to vůbec? Diky moc |
||
juriad Profil |
Nesnaž se plnit window.event, naopak spoléhej na argument posluchače události. A pro IE si ho doplníš prvním řádkem:
function(e) { e = e || window.event; // po tomto bude ve všech prohlížečích v e objekt události // tady napíšeš samotnou obsluhu události } Přečti si: http://www.quirksmode.org/js/events_access.html Tam je navržený obdobný postup. |
||
Kryvosa Profil * |
#3 · Zasláno: 8. 3. 2015, 20:56:03
Co v případě, že mám funkci
getMousePos() která vrací hodnoty z eventu?
Je lepší si v tom případě udělat globální proměnnou mousex a mousey, ve kterých bude uložená aktuální pozice myši? |
||
joe Profil |
#4 · Zasláno: 8. 3. 2015, 20:59:58
Kryvosa:
„Je lepší si v tom případě udělat globální proměnnou mousex a mousey“ Globální proměnné jsou špatné a pokus se je co nejvíc eliminovat. Nevidím v čem je problém, prostě ti ta metoda vrátí ty hodnoty z události, případně ji můžeš dát jako parametr onen event, ale to bych taky nedoporučoval - dávat do parametrů objekty, které obsahují spoustu věcí, které z nich nevyužiješ. |
||
Kryvosa Profil * |
#5 · Zasláno: 8. 3. 2015, 21:06:19
Tak ještě jednou... Asi něco nechápu :)
Jak se uprostřed nějakého scriptu, který se NEspouští akcí uživatele, dozvím polohu myši? |
||
joe Profil |
#6 · Zasláno: 8. 3. 2015, 21:27:49
Možná bude jednodušší, když napíšeš, čeho chceš docílit a dáš třeba živou ukázku na kod.djpw.cz
|
||
Kryvosa Profil * |
#7 · Zasláno: 9. 3. 2015, 00:04:48
oŘekněme mám tuto funkci, která po zmáčknutí tlačítka podle doby, kterou tlačítko držíte, určí, jestli jste klikli, nebo podrželi. Pŕo každou se provede jiná činnost...
mainC.onmousedown=function(e) { var holding=setTimeout("holded();",150); document.onmouseup=function(){clearTimeout(holding);clicked();} } holded() ... jak to udělám?
|
||
Chamurappi Profil |
#8 · Zasláno: 9. 3. 2015, 00:36:15
Reaguji na Kryvosu:
Nikdy jako první argument setTimeout u nedávej řetězec, je to fuj.
Jakmile si zvykneš, že můžeš dát do setTimeout u funkci, a uvědomíš si, že funkce vepsaná uvnitř jiné funkce má přístup k lokálním proměnným, už je to snadné, ne?
|
||
Kryvosa Profil * |
#9 · Zasláno: 9. 3. 2015, 09:44:53
V překladu, mám napsat
setTimeout(function(){holded(e)}, 150) ?
Děkuju, takhle to funguje, škoda, že jsem teprve teď přišel na událost onDrag
|
||
Časová prodleva: 9 let
|
0