2015-05-22 9 views
6

Desidero visualizzare un contenitore div se il dispositivo ha una larghezza speciale. Ho fatto una semplice condizione e sta funzionando bene.Javascript non continua dopo aver aggiunto un foglio di stile ad una classe

Volevo aggiungere una seconda funzione al mio codice e la funzione non è stata chiamata. Dopo aver provato, ho visto che il codice si ferma dopo il document.getElementyById-Code.

Se l'avviso ("Hello World") viene chiamato nella condizione if prima del getElementById, viene chiamato. Se viene chiamato nella condizione if dopo getElementById, non viene più chiamato.

Perché il progresso è bloccato lì?

L'output della console: [Errore] TypeError: null non è un oggetto (la valutazione 'document.getElementById ("whitecontainer") stile.') setHeightandWidth (-Link cancellata-, linea 402) onResize (-Link cancellato-, riga 382)

ma l'oggetto non può essere nullo, perché il cambio di stile funziona, è bloccato dopo aver eseguito il ridimensionamento.

Grazie per l'aiuto!

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

Puoi mostrarci l'html pertinente? – steve

+1

Puoi essere più preciso, quale parte non funziona? – Zee

+1

Il codice così com'è non sta visualizzando Hello World. Se metto l'avviso ("Hello World!") Sopra document.getElementById, visualizza Hello World. – Skalibran

risposta

1

L'avviso che non funziona probabilmente indica che la linea prima ha causato un errore.

fare le linee

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

Run?

Mi sembra che il codice non funzioni ogni volta che si utilizza un documento. XXXXXX

'whitecontainer' probabilmente non è un vero e proprio elemento

+1

Sì, questa è l'ultima cosa che funziona. Dopo che il codice è bloccato, quindi non sono in grado di cambiare nient'altro usando il mio javascript. – Skalibran

+0

Aspetta, intendi che white_container.style.height = height + "px"; white_container.style.width = width + "px"; Sta correndo? – steve

+0

esattamente. La console lancia comunque un'eccezione nulla per whitecontainer. EDIT: NO, non lo è. Ho appena controllato di nuovo e ora non funziona più, ma il codice che hai citato dovrebbe funzionare senza problemi se non bloccato. Lo uso in alcuni progetti. – Skalibran

1

problema è in questa linea

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

javascript non è in grado di trovare id " whitecontainer "tat's perché genera un'eccezione null e lo script si interrompe

+0

Sembra esattamente come questo, ma il codice che hai menzionato sopra funziona. – Skalibran

Problemi correlati