Autor Zpráva
Kryvosa
Profil *
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 *
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
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 *
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
Možná bude jednodušší, když napíšeš, čeho chceš docílit a dáš třeba živou ukázku na kod.djpw.cz
Kryvosa
Profil *
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();}
}
Následně potřebuju získat event i pro funkci holded()... jak to udělám?
Chamurappi
Profil
Reaguji na Kryvosu:
Nikdy jako první argument setTimeoutu nedávej řetězec, je to fuj.
Jakmile si zvykneš, že můžeš dát do setTimeoutu 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 *
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

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: