Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
#1 · Zasláno: 9. 8. 2016, 15:21:56
Ahoj, mám menší problém s Menu které vyvíjím pro své stránky a to konkrétně s JS který zařídí že po kliknutí na položku v menu se zobrazí sub menu.
Všechno funguje správně ale potřeboval bych nějak zajistit aby po kliknutí například na Menu 2 se uzavřelo Menu 1 které jsem před tím rozklikl, současná situace je taková že pokud rozkliknu Menu 1, Menu 2 a Menu 3 tak mi zůstanou všechny otevřené. menu.js function zobrazSkryj(idecko){ el=document.getElementById(idecko).style; el.display=(el.display == 'block')?'none':'block'; } Zde přikládám ještě ukázku menu aby jste viděli funkčnost Ukázka |
||
user Profil * |
#2 · Zasláno: 9. 8. 2016, 16:23:53
co treba:
function zobrazSkryj(idecko){ document.getElementById(menu1).style.display = 'none'; document.getElementById(menu2).style.display = 'none'; document.getElementById(menu3).style.display = 'none' el=document.getElementById(idecko).style; el.display=(el.display == 'block')?'none':'block'; } |
||
juriad Profil |
#3 · Zasláno: 9. 8. 2016, 16:57:05
function ZobrazSkryj(def) { def = def || 'block'; var el = null; return function(idecko, state){ if (el && el.id != idecko) { el.style = 'none'; } el = document.getElementById(idecko); if (state === undefined) { el.style.display = (el.style.display == def) ? 'none' : def; } else { el.style.display = state ? def : 'none'; } }; } var zobrazSkryj = ZobrazSkryj(); Trošku rozšířená verze se zachováním původní funkčnosti. Funce zobrazSkryj (ano je to funkce) si pamatuje poslední element - ten vždy skryje.
U elementu se zadaným ideckem změní jeho zobrazení. Navíc umí nastavovat stav (nejen ho invertovat) a je možné vytvořit několik nezávislých kopií. Příklad demonstrující všechny možnosti: Živá ukázka |
||
leorond Profil |
user: Zdá se mi zbytečné pokaždé když chci přidat položku do menu, upravovat JS.
juriad: Děkuji jdu to dát dohromady :) Mohu se ještě zeptat, co kdyby jsem chtěl zakrývat i v případě že kliknu mimo sub menu? Jak by přibližně vypadala úprava JS? A tedy abych nemusel zakládat další vlákno, co kdybych chtěl aby se + měnilo na - při rozkliknutí menu? |
||
Časová prodleva: 8 let
|
0