Autor | Zpráva | ||
---|---|---|---|
Honza 78 Profil * |
#1 · Zasláno: 3. 9. 2008, 20:57:21
Ahoj,
nevíte o nějakém rychle nastavitelném stromovém menu v javascriptu? Ideální by bylo menu řešené ajaxem. Tedy, že po rozkliknutí větve se mi v pozadí načte php skript a vrátí do menu podvětve. Díky |
||
peta Profil |
#2 · Zasláno: 4. 9. 2008, 10:19:32
Honza 78
'kde sehnat hotové řešení' - google.com, css.interval.cz ,... Muzes zkusit pouzit tohle, ale pripominky neresim :) <html> <head> <style> #nav a {color:#0088cc;} #nav a.a_otevren, #nav a.a_zavren {font-weight:bold; text-decoration:none;} #nav a.a_otevren {color:#00bb00;} #nav a.a_zavren {color:#ff0000;} #nav ul.ul_otevren {} #nav ul.ul_zavren {display:none;} </style> <script> // hleda prime potomky, narozdil od getElementsByTagName function objekt_deti(objekt,jmeno) { var i,j,pole,deti; j = 0; pole = []; deti = objekt.childNodes; if (deti && deti.length>0) { for (i=0;i<deti.length;i++) { el = deti[i]; if (el.nodeType==1 && el.tagName==jmeno) { pole[j] = el; j++; } } } return pole; } function nav_zavri(obj_A,obj_UL,podminka) { var a,b; if (obj_UL) { // zmen class pro A a = 'a_otevren'; b = 'a_zavren'; obj_A.className = podminka ? b : a; // zmen class pro UL a = 'ul_otevren'; b = 'ul_zavren'; obj_UL.className = podminka ? b : a; } } // akce pri onclick function nav_akce(obj_A) { var a,b,i,o1,o2,o3, podminka; podminka = obj_A.className=='a_otevren'; o1 = objekt_deti(obj_A.parentNode,'UL'); // z A do rodice, tj. LI a ziskat vsechny UL if (o1.length>0) { // zavri vsechny vetve o2 = objekt_deti(obj_A.parentNode.parentNode,'LI'); // z A do LI a do UL a ziskat vsechny LI uzly for (i=0;i<o2.length;i++) { o3 = objekt_deti(o2[i],'UL'); if (o3.length>0) { // zmen class pro UL cislo 0 nav_zavri(objekt_deti(o2[i],'A')[0], o3[0], true); } } // zmen class A i UL nav_zavri(obj_A, o1[0], podminka); return false; } return true; } function nav_pridej(o1) { var o2, i,j; // o1, o2 jsou pole objektu if (o1.length>0) { for (i=0;i<o1.length;i++) { // nastav pro vsechny A class a onclick, ktere maji ve stejnem LI aspon 1 UL o2 = objekt_deti(o1[i],'A'); for (j=0;j<o2.length;j++) { if (objekt_deti(o1[i],'UL').length>0) { o2[j].className = 'a_zavren'; o2[j].onclick = new Function ('return nav_akce(this)'); } } // nastav pro vsechny UL class a spus opakovani funkce pro dalsi prime potomky o2 = objekt_deti(o1[i],'UL'); if (o2.length>0) { for (j=0;j<o2.length;j++) { o2[j].className = 'ul_zavren'; nav_pridej(objekt_deti(o2[j],'LI')); // opakuj sam sebe pro vsechy dalsi LI } } } } } function nav_vytvor(id) { nav_pridej(objekt_deti(objekt_deti(document.getElementById(id),'UL')[0 ],'LI')); } </script> </head> <body> <div id="nav"> <ul> <li><a href="#">nadpis</a> <ul> <li><a href="#">odkaz</a></li> <li><a href="#">nadpis</a> <ul> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> </ul> </li> <li><a href="#">nadpis</a> <ul> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> </ul> </li> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> </ul> </li> <li><a href="#">nadpis</a> <ul> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> </ul> </li> <li><a href="#">nadpis</a> <ul> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> <li><a href="#">odkaz</a></li> </ul> </li> </ul> </div> <script>nav_vytvor('nav');</script> </body> </html> |
||
Arnold Profil * |
#3 · Zasláno: 4. 9. 2008, 19:45:02
Dooost dobrééé
|
||
svadla Profil |
#4 · Zasláno: 4. 9. 2008, 19:50:29
|
||
Časová prodleva: 2 měsíce
|
|||
peca9 Profil |
#5 · Zasláno: 16. 11. 2008, 22:06:08
Menu mám v souboru index.php a odkazy spouští tentýž index.php přičemž posílám hodnotu proměnné v adrese a tato proměnná následně určuje obsah jiné části této stránky.
<li><a href="index.php?prodid=00001">vyrobek00001</a></li> Po kliknutí na odkaz se načte stránka tak jak potřebuju, ale zárověň se zruší rozbalení menu. Poraďte mi prosím jestli existuje způsob jak rozbalení zachovat. Děkuji, jsem zoufalý a nezkušený. |
||
Časová prodleva: 15 let
|
0