Autor | Zpráva | ||
---|---|---|---|
Papouch Profil |
#1 · Zasláno: 1. 11. 2007, 10:23:32
Potreboval bych, zda by nekdo odbornym okem nezkontroloval nize uvedene robalovaci menu. Idea je takova, ze podmenu by se mela rozbalovat a sbalovat az po kliku a v pripade, kdy nebude javascript k dispozici, zustane menu naporad rozbalene. Zkousel jsem to v beznych prohlizecich a zda se, ze to docela funguje. Zkousel jsem i jina komplikovanejsi reseni, ale ta mi vzdy ve starsich porohlizecich (napr. Netscape 4.72) hlasila nejake chyby. Tohle reseni mi prijde jednoduche a snad dostacujici.
funkce: <script LANGUAGE="JavaScript"> function show(ide) { var element=null; if (document.getElementById) { element=document.getElementById(ide); } else if (document.all) { element=document.all[ide]; } else if (document.layers) { element=document.layers[ide]; } if (element) { if (element.style) { (element.style.display!='none') ? element.style.display = 'none' : element.style.display = 'block'; } else { // zatim nic } } return; } //--> </script> vlastni menu: <ul> <li><a href='#' onclick='show("submenu1")'>Item 1 »</a> <ul id="submenu1"> <li><a href='#'>Item 1.1</a></li> <li><a href='#'>Item 1.2</a></li> </ul> </li> <li><a href='#' onclick='show("submenu2")'>Item 2 »</a> <ul id="submenu2"> <li><a href='#'>Item 2.1</a></li> <li><a href='#'>Item 2.2</a></li> </ul> </li> <li><a href='#'>Item 3</a></li> </ul> <script LANGUAGE="JavaScript"> show("submenu1"); show("submenu2"); </script> |
||
peta Profil |
#2 · Zasláno: 1. 11. 2007, 11:55:01
Mozna bych pridal funkci, ktera akci onclick a id prida automaticky pro cele menu s nejakym id. Odlehci se HTML kod, prida se asi 5 radku JS. Co do objemu je to asi tak stejne.
Mozna bych zmenil funkci takto: function show(ide) { var element = (document.getElementById) ? document.getElementById(ide) : (document.all) ? document.all[ide] : (document.layers) ? document.layers[ide] : null; if (element && element.style) { element.style.display = (element.style.display!='none') ? 'none' : 'block'; } else { // zatim nic } return true; } Kazdopadne chybne tam mas jen, kdyz pouzijes odkaz, ktery nikam neodkazuje. |
||
Papouch Profil |
#3 · Zasláno: 1. 11. 2007, 13:05:20
Fajn. Dobra zprava, ze tam neni zadna "bota". K tomu kompaktnejsimu zapisu funkce bych se mozna casem take dostal, ale s javascriptem teprve zacinam, a takto to pro me bylo prehlednejsi.
Ty odkazy budou samozrejme funkcni a korektne odkazujici, ale pro ukazku menu to nemelo vyznam vyplnovat. Jeste by me zajimala jedna vec, ktera spise souvisi s CSS. Zkousel jsem to menu nastylovat pres ul{margin-left: 15px; padding: 0;} a li{margin-left: 10px;}. Vsude to fungovalo pekne, zase az na stary Netscape 4.72. Tam se ten styl na seznamy vubec neaplikoval. Protoze ten skript by mel fungovat obecne i na jine blokove elementy, tak jsem zkusil to menu prepsat pres divy a tam to fungovalo i v tom starickem Netscapu. Otazka je, jestli to neni zbytecne drbani se pres hlavu a jestli neni lepsi se proste na ty stare prohlizece vykaslat. To menu pres seznamy mi totiz prijde jaksi logictejsi. Jeste ukazka toho menu pres divy. <div><a href='#' onclick='show("submenu1")'>Item 1 »</a></div> <div id="submenu1" style="margin: 0 10px"> <div><a href='#'>Item 1.1</a></div> <div><a href='#'>Item 1.2</a></div> </div> <div><a href='#' onclick='show("submenu2")'>Item 2 »</a></div> <div id="submenu2" style="margin: 0 10px"> <div><a href='#'>Item 2.1</a></div> <div><a href='#'>Item 2.2</a></div> </div> <div><a href='#'>Item 3</a></div> <script LANGUAGE="JavaScript"> show("submenu1"); show("submenu2"); </script> |
||
Časová prodleva: 16 let
|
0