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

Boolean einfache IF-Abfrage

baumjohann

New member
Ich möchte bei Javascript eine einfache If-Abfrage realisieren.
Ich habe einer globalen Variable "status" den boolschen wert false übergeben(status = false;) und möchte Abfragen welchen boolschen Wert diese Variable besitzt. Wie kann ich das in JavaScript am besten realisieren? Versucht hab ich : if(status); if(status===false); if(status==false); aber diese Abfragen sind fehlerhaft.

In meinem Code geht es um eine Navigationsleiste. Wenn man auf einem Button klickt, soll dieses Ereignis vom Code gemerkt werden (durch boolsche Zuweisung und Abfrage der boolschen Variable status).

MfG Baumjohann
 
Hier ist nochmal zur besseren Verständnis mein Code:

HTML:
window.onload=init;

function init(){
/*Button klickbar machen*/
var button=document.getElementById('navicon');
    button.onclick=showHide;
/*globaler Status show/hide*/
    status;
}
function showHide() {
  var div=document.getElementById('dropdown');
  var navUl=document.getElementById('orignav');
    if (div.style.display !== 'block') {
        /*neue Navbar einblenden ->show*/
        div.style.display = 'block';
        navUl.style.height ='125px';
        navUl.style.borderBottom ='1px solid #00688B'; 
/*Status wird auf true gesetzt*/
        status = true;

    } /*neue Navbar bei erneutem Klicken ausblenden->hide*/
    else {
        div.style.display = 'none';
        navUl.style.height ='175px';
        navUl.style.borderBottom ='none';
/*Status wird auf false gesetzt*/
        status = false;
        
    }
}
Die Variable status soll global sein, deshalb kein var. Es sollen die boolschen Werte außerhalb der Methode gespeichert werden und anschließend wieder drauf zugegriffen werden. zum Beispiel: wenn status den boolschen Wert true enthält, ist die Navigationsleiste ausgeklappt und es soll folgendes getan werden...

Mfg Baumjohann
 
Zuletzt bearbeitet von einem Moderator:
der status (global) ist false wenn er nicht gesetzt ist, weil er dann fehlt, als nicht globale variable
Edit fiddle - JSFiddle

- - - Aktualisiert - - -

das kommt daher dass deine Variable NICHT global ist,
var macht im außenbereich eine Variable global und innerhalb einer Funktion macht ein fehlendes var eine variable global, das ist dann umgedreht.
Also der Einwand von mikdoe war schon richtig, setz ein var im außenbereich davor
 
Zuletzt bearbeitet:
baumjohann schrieb:
Die Variable status soll global sein, deshalb kein var.
Harr, ich fange gleich an zu beißen, aber erst belle ich.

In JavaScript entstehen durch das Vergessen des Schlüsselworts var vor einem Variablennamen ungewollt globale Variablen – ein unangenehmes Fehlerpotential. So überlebt die Variable auch nach dem Verlassen der Funktion und wenn die Funktion häufig aufgerufen wird, entsteht u.U. ein Speicherleck.
Javascript Globale und lokale Variablen

Globale Variablen sollten immer vermieden werden, grade solche ohne var.


Michaaaa... du bist dran.
i'm @ .:sleeping:
 
Unglaublich es klappt!!! Vielen dank für eure Hilfe aber verstehen tu ich es nicht. Folgendes habe ich getestet:
status = false;
alert(status);

Der alert gibt mir false aus, folglich ist der status false gesetzt worden oder nicht? Ich bin verwirrt
 
Zurück
Oben