molily: Objekt per Mausklick anzeigen und schließen

Beitrag lesen

Hallo,

<div id = "menuesearch">

<div id = "menue" onclick="toggle_visibility('navi');">
    </div>
    <div id = "sfm" onclick="toggle_visibility('sboxm'); nomenue();">
    </div>
</div>

  
Das ist schon ganz richtig gedacht (die Umsetzung von nomenu scheint dir noch zu fehlen).  
  
Deine Anforderungen vollständig umgesetzt, soweit ich sie verstanden habe:  
  
`<div id="menue-button"  onclick="[code lang=javascript]toggle('menue'); hide('search');`{:.language-html}">…</div>  
<div id="search-button" onclick="`toggle('search'); hide('menue');`{:.language-javascript}">…</div>[/code]  
  
Die Bezeichner habe ich kurzerhand geändert, es geht bloß darum, was beim Klick alles passieren muss.  
  
Die toggle-Funktion hast du schon (toggle\_visibility), also fehlt nur die hide-Funktion.  
  

> Das ist mein bisheriges Script (ehrlich gesagt auch nur aus dem Inet zusammengebastelt)  
  
Wenn du in die Funktion toggle\_visibility schaust, siehst du, wie das Verstecken geht.  
  

>     function toggle\_visibility(id) {  
>            var e = document.getElementById(id);  
  
Holt das Element mit der angegebenen ID.  
  

>            if(e.style.display == 'block')  
  
Prüft, ob der CSS-Inline-Style »display« den Wert »block« hat. Siehe <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#position@title=display in SELFHTML>.  
  
»block« steht hier für sichtbar (kennst du aus CSS wahrscheinlich).  
  

>               e.style.display = 'none';  
  
Falls das Element sichtbar ist, verstecke es. Ändere den display-Wert auf none.  
  

>            else  
>           e.style.display = 'block';  
  
Andernfalls zeige das Element an. Ändere den display-Wert auf block.  
  
Jetzt sollte klar werden, wie du ein Element verstecken kannst und wie eine hide-Funktion aussehen kann:  
  
~~~javascript
function hide(id) {  
  var e = document.getElementById(id);  
  e.style.display = 'none';  
}

Dann lässt sich hide('menue') bzw. hide('search') aufrufen. Für »menu« und »search« sind natürlich deine IDs einzusetzen.

Disclaimer: Das ist äußerst vereinfacht. Es gibt andere, letztlich bessere Methoden, um die Sichtbarkeit eines Elements zu ändern, z.B. das Hinzufügen/Entfernen einer Klasse mit entsprechenden Formatierungen im Stylesheet. Die erfordern aber mehr als ein paar Zeilen JavaScript.

Mathias