Autor | Zpráva | ||
---|---|---|---|
Denny Ellis Profil |
#1 · Zasláno: 9. 9. 2010, 10:15:28
Dobrý den,
spravuji stránku http://www.detipatridomu.cz . Dlouhou dobu nikomu nevadilo, že když rozbalí jeden odkaz v menu a posléze druhý, zůstane první otevřený. Nyní však potřebuji tento nešvar odstranit. Mohli byste mi, prosím, poradit, jak na to?? |
||
Nox Profil |
#2 · Zasláno: 9. 9. 2010, 10:17:14
Když někdo klikne na položku menu, nejdřív všechny zavři a pak otevři ten klikaný (to jak to máš teď)
|
||
Denny Ellis Profil |
#3 · Zasláno: 9. 9. 2010, 10:22:20
Nox:
Ale to neřeší můj problém.. :-D Já potřebuju, aby když někdo klikne na jinej, než měl, ten původní se musí zavřít.. |
||
habendorf Profil |
#4 · Zasláno: 9. 9. 2010, 10:24:52
Však to je přesně to, co Nox říká, ne?
|
||
Denny Ellis Profil |
Nj, ale musí ten uživatel kliknout ještě na to starý.. Já chci, aby se to starý zavřelo samo ve chvíli, kdy se otevře nový..
Podle mě se to musí nastavovat někde v .js souboru.. Is that correct?? function checkParent(src, dest) { while (src!=null) { if (src.tagName == dest) return src; src = src.parentNode; } return null; } function Menu(e) { var event = e || window.event; var open = event.target || event.srcElement; var el = checkParent(open, "LI"); this.oneSmOnly = true; if (null!=el) { var pos = 0; for (var pos=0; pos<el.childNodes.length; pos++) { if ("UL"==el.childNodes[pos].tagName) break; } if (pos==el.childNodes.length) return; } else return; el = el.childNodes[pos]; if ("UL"==el.tagName) { if (""==el.style.display) { el.style.display = "block"; } else { el.style.display = ""; } } event.cancelBubble = true; } document.documentElement.onclick = Menu; Moderátor Davex: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
PostCC Profil |
#6 · Zasláno: 9. 9. 2010, 10:46:41
Denny Ellis:
Ne, nečtete přesně. Je tam doslovně uvedeno "nejdřív všechny zavři a pak otevři ten klikaný". Tzn. postup po kliknutí na položku menu bude: 1) cyklem projít všechny položky menu a sbalit je 2) rozbalit vybranou položku Není nutné, aby uživatel klikal na starou položku, kterou chce uzavřít. |
||
Denny Ellis Profil |
#7 · Zasláno: 9. 9. 2010, 11:02:21
PostCC:
Omlouvám se, ale já nerozumím.. Pokud projdu všechny položky a sbalím je, jsou všechny sbaleny.. To je jasné, mylím.. A pak rozbalím tu, kterou chci, to je taky jasné. Ale v tuto chvíli si prohlížím například "hostitelská péče" a chci si rozbalit "pobyty pro děti". Kliknu na pobyty a hostitelská péče se nezavře.. zůstane otevřená.. Doufám, že nemluvím z cesty..:-D |
||
PostCC Profil |
#8 · Zasláno: 9. 9. 2010, 11:17:54
Denny Ellis:
Správně. Čili ve chvíli, kdy kliknete na "Pobyty pro děti", jako první akce se provede projití všech položek a jejich sbalení. Následně se teprve rozbalí "Pobyty pro děti". Prostě to kliknutí sestává se dvou kroků - 1) zabalit všechny položky, 2) rozbalit vybranou položku. Jasné? |
||
habendorf Profil |
#9 · Zasláno: 9. 9. 2010, 11:19:39
Denny Ellis:
„Kliknu na pobyty a hostitelská péče se nezavře.. zůstane otevřená..“ No a právě proto ji musíš sbalit. Máš zhruba dvě možnosti: 1) sbalit cyklem všechno - to bude jednodušší, ale je to trochu mrhání 2) pamatovat si poslední otevřenou a sbalit jen ji Co je na tom pořád k nepochopení? |
||
Denny Ellis Profil |
#10 · Zasláno: 9. 9. 2010, 11:50:44
Jo tak, vy nemluvíte o manuálním zavírání, ale o příkazu.. :-D V tom případě to dává smysl..:)
A prakticky to lze provést jak?? |
||
Denny Ellis Profil |
#11 · Zasláno: 9. 9. 2010, 14:34:34
Dá se to nastavit v souboru .js, je to tak?? Kde mám co vepsat?? Stáhl jsem vzor z netu a bohužel nevím, co z toho mění tento aspekt, resp. příkaz, který toto udělá.. Můžete prosím poradit konkrétně?? Text z .js je výše..
díky |
||
PostCC Profil |
#12 · Zasláno: 9. 9. 2010, 20:35:20
Denny Ellis:
To asi nebude jen jednoduchá změna nějakého atributu scriptu. Napište si funkci, která v cyklu projde všechny položky menu a sbalí je, tu volejte před rozbalením rozkliknuté položky. Samozřejmě záleží na formátu menu, zřejmě využijete např. metody "getElementsByTagName" nebo kolekce "childNodes". |
||
Denny Ellis Profil |
#13 · Zasláno: 9. 9. 2010, 20:59:18
Já tomu rozumím, co je potřeba udělat, ale neorientuji se v tom.. Hledal jsem podle toho, co jste psal na webu, ale já JavaScript neovládám. Já jsem pouze stáhl jakousi šablonu na toto menu a nevím, co kam mám vepsat, aby to plně fungovalo..
Němohl byste mi prosím konkrétně říci co a kam mám vepsat?? Děkuji. |
||
PostCC Profil |
#14 · Zasláno: 10. 9. 2010, 12:47:37
Denny Ellis:
V tom případě nechávám prostor ostatním, snad se nějaká dobrá duše najde. Já na to, bohužel, nemám čas. |
||
Časová prodleva: 14 let
|
0