• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] JS über Button visibility wechseln

MrPaule75

New member
Hallo Community,
ich suche und versuche nun schon eine Weile und erlaube mir, mich an Euch zu wenden.

Ich erstelle eine Webseite, auf der das Navigationsmenü in einem versteckten div liegt und über einen Button aufgerufen wird. Es handelt sich dabei um ein animierten Button, welcher auf Klick den Layer einblendet und das Symbol von "=" auf "X" wechselt. Von "X" zu "=" im Button gelange ich nur, wenn ich wieder auf diesen Button klicke. Muss also ein weiteres Mal genutzt werden, damit sich die Symbolik ändert. Demzufolge muss ich über den selben Button den Layer wieder von "visible" auf "hide" wechseln.

Code:
<script>
<!--
    function toggle_visibility(id) {
       var e = document.getElementById(id);
       if(e.style.visibility == 'visible')
          e.style.visibility = 'hidden';
       else
          e.style.visibility = 'visible';
    }
//-->
</script>

<!-- Button zum ein- und ausblenden des Menülayer -->
<a onClick="document.getElementById('menue-layer-hidden').style.visibility= toggle_visibility();">
<button class="c-hamburger c-hamburger--htx">

<!-- Menülayer -->
<nav>
<div id="menue-layer-hidden" class="menue-klasse">

Der Button soll beim Laden der Seite quasi den Menülayer beim Klick einblenden:
Code:
<a onClick="document.getElementById('menue-layer-hidden').style.visibility= 'visible'">

Ist der Layer dann aktiv, müsste beim Klick auf den Button ausgeführt werden:
Code:
<a onClick="document.getElementById('menue-layer-hidden').style.visibility= 'hidden'">

Bei meinen Versuchen reagiert zwar der Button (Animation) aber der Menülayer wird gar nicht eingeblendet. Ist der Code falsch oder habe ich einen Denkfehler?

Vielen Dank im Voraus
Grüße
MrPaule
 
Du hast vergessen, bei toggle_visibility einen Parameter zu uebergeben:

Code:
<a onClick="document.getElementById('menue-layer-hidden').style.visibility= toggle_visibility('menue-layer-hidden');">
 
Da toggle_visibility() aber keinen Rückgabewert hat (bzw. undefined), ergibt es keinen Sinn, diesen an irgendwas zuzuweisen.

Code:
<a onclick="toggle_visibility('menue-layer-hidden');">

PS: Dein Problem hättest du ev. mit Hilfe der Fehlerkonsole selbst gefunden.
PPS: es heißt onclick...
 
Zurück
Oben