2015-05-22 3 views
6

Ich möchte einen div-Container anzeigen, wenn das Gerät eine spezielle Breite hat. Ich machte eine einfache Wenn-Bedingung und es funktioniert gut.Javascript wird nach dem Hinzufügen eines Stylesheets zu einer Klasse nicht fortgesetzt

Ich wollte meinem Code eine zweite Funktion hinzufügen und die Funktion wurde nicht aufgerufen. Nach dem Ausprobieren sah ich, dass der Code nach dem document.getElementyById-Code anhielt.

Wenn der Alarm ("Hello World") in der if-Bedingung vor getElementById aufgerufen wird, wird er aufgerufen. Wenn es in der if-Bedingung nach getElementById aufgerufen wird, wird es nicht mehr aufgerufen.

Warum ist der Fortschritt dort festgefahren?

Die Konsole Ausgang: [Fehler] Typeerror: null ist kein Objekt setHeightandWidth (-Link Löschkriterien, Zeile 402) onresize ('document.getElementById ("whitecontainer") Art.' Auswertung) (-Link deleted-, line 382)

aber das Objekt kann nicht null sein, weil die Stiländerung funktioniert, sie bleibt einfach hängen, nachdem die Größe geändert wurde.

Vielen Dank für Ihre Hilfe!

function setHeightandWidth() { 
    var body = document.body, 
     html = document.documentElement; 

    var height = (Math.max(body.scrollHeight, body.offsetHeight, 
          html.clientHeight, html.scrollHeight, html.offsetHeight) - 75 - 248); 

    var width = document.body.clientWidth; 

    if (width < 1199) { 
     document.getElementById("whitecontainer").style.display = "none"; 

     alert("Hello World!"); 

    } 

    if (width >= 1199) { 
     width = 1140; 
     document.getElementById("whitecontainer").style.display = "inherit"; 
    } 

    var white_container = document.getElementById("whitecontainer"); 
    white_container.style.height = height + "px"; 
    white_container.style.width = width + "px"; 

} 
+2

Können Sie uns den relevanten HTML zeigen? – steve

+1

Können Sie genauer sein, welcher Teil funktioniert nicht? – Zee

+1

Der Code wie es dort ist, zeigt nicht Hallo Welt. Wenn ich die Warnung ("Hello World!") Über die Datei document.getElementById setze, wird Hello World angezeigt. – Skalibran

Antwort

1

Der Alarm funktioniert nicht, bedeutet wahrscheinlich, dass die Zeile davor einen Fehler verursacht hat.

Haben die Linien

white_container.style.height = height + "px"; 
white_container.style.width = width + "px"; 

Run?

Ich habe das Gefühl, dass Ihr Code jedes Mal fehlschlägt, wenn Sie ein Dokument verwenden. XXXXXX

'whitecontainer' wahrscheinlich

+1

Ja, das ist das letzte, was funktioniert. Danach ist der Code fest, so dass ich nichts anderes mit meinem Javascript ändern kann. – Skalibran

+0

Warten Sie, dass white_container.style.height = Höhe + "px"; white_container.style.width = Breite + "px"; Läuft? – steve

+0

genau. Die Konsole gibt sowieso eine Null-Ausnahme für den Whitecontainer aus. EDIT: Nein, ist es nicht. Ich habe es gerade noch einmal überprüft und jetzt funktioniert es nicht mehr, aber der Code, den du erwähnt hast, sollte ohne Probleme laufen, wenn er nicht feststeckt. Ich benutze es in einigen Projekten. – Skalibran

1

Problem ist kein reales Element ist in dieser Linie

document.getElementById ("whitecontainer"). Style.display

Javascript nicht in der Lage ist zu finden id " whitecontainer "tat's, warum es eine Null-Ausnahme wirft und Skript bricht

+0

Scheint genau so, aber der Code, den Sie oben erwähnt haben, funktioniert. – Skalibran

Verwandte Themen