Autor Zpráva
leorond
Profil
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 *
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
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?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0