Autor Zpráva
Lukáš Chmela
Profil *
Dobrý den.
Opět píši do oddílu JavaScriptu.
Učení JavaScriptu jsem moc pozornosti nevěnoval, protože jakmile jsem začal, zjistil jsem že je JavaScript k ničemu.
Za ty roky už jsem ale pokročil a píši webové aplikace v PHP a samozřejmě jsem zjistil, že bez JavaScriptu to nejde.
Resp. jde, ale paradoxně "je to k ničemu". Tak jsem se vrátil k JS a kupodivu mi celkem jde.. až tak moc se od PHP
neliší a je udělán celkem logicky.. Ale přeci jen mi lezou krkem některé výlevy fantazie, které nedokážu pochopit.

Ať neodbíhám od tématu, můj problém je takový:
v tělíčku BODY mám nastavené akce JavaScriptu na různé události, jako např. onmousemove apod.
když jsem však chtěl vytvořit jednoduchou funkci, která by obsluhovala ostatní akce myši ( onclick,
oncontextmenu, onmouseup... ) narazil jsem na potíž.. zmiňovaná funkce se jmenuje click() a pokud ji
v tomto tvaru vložím do tělíčka, akce se nevykoná. Pokud tam však místo funkce vložím např. return false,
tak se třeba u contentmenu neukáže kontextové menu. Už jsem zkoušel i kontrolu přes alerty, dopadne
to stejně. v případě že alert vložím do body, vykoná se.. pokud tam vložím funkci s alertem, funkce se nezavolá.
onmousedown jsem vyřešil tím, že jsem místo funkce click() zavolal mouse(), která funkci click() zavolala
sama. U contextmenu to ale nefunguje.. sám vím, že tohle je dost postranní a nespolehlivé řešení
a proto se Vás ptám, zda-li není jiné východisko..

Můj přiklad:
<script type="text/javascript">
function click(action)
{
if (action=="click")
{
if (event.button==2)
{
if (window.event.srcElement.id=="search") search("settings",true);
else return false;
}
}
if (action=="contextmenu" && window.event.srcElement.tagName!="A") return false;
}
</script>
</head>
<body onmousedown="click('click')" oncontextmenu="click('contextmenu')">

Děkuji za případné rady a názory.
peta
Profil
Lukáš Chmela
prvni odstavec kecy mimo problem a vetsina lidi uz dal necte :)
http://www.volny.cz/peter.mlich/www.htm#mssub12
zero0x
Profil
Lukáš Chmela
prvni odstavec kecy mimo problem a vetsina lidi uz dal necte :)
http://www.volny.cz/peter.mlich/www.htm#mssub12[/i]
tak to si mu velmi nepomohol.

prva vec, ktoru by som ti poradil trochu zmenit, je pouzivanie tej istej funkcie na spracovavanie roznych eventov. To je dost neprehladne, vsetky tie podmienky. poradil by som ti pouzivat skor funkcie type spracujKliknutie() ukazMenu() atd.

nefunguje ti to mozno pre toto: if (event.button==2) . nikde nevidim definovanu premennu event. ked uz tak tam daj window.event, aj ked toto ti tiez neodporucam robit, lebo to nebude fungovat vo vsetkych prehliadacoch. je to trochu zlozitejsia vec s tymi eventami, a ty to komplikujes este viac.
zero0x
Profil
pozri si toto http://zero.wblog.sk/2007/01/24/javascriptevents/
Toto téma je uzamčeno. Odpověď nelze zaslat.