Domanda

Sto avendo un document.body è un errore nullo nel mio javascript perché uso:

$(window).width()

come valore da assegnare a una variabile nel mio

$(document).ready(function(){});

Sarei molto grato a chiunque potesse aiutarmi in questo.

Cordiali saluti

modifica: scusate se non è tutto chiaro. Ho una demo su: http://www.wpmonk.com/demo/hypowired all'inizio il tema verrà caricato ma poi diventerà bianco (a causa dell'errore) ma quando ricarichi puoi vedere l'intero tema perché poi conosce il valore di $ (window) .width ()

Sto usando questo codice per centrare il layout (non è possibile con CSS perché anche la sinistra deve avere una larghezza.)

function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });
}

Chiamo la funzione positioneerElement() nella funzione di caricamento.

Scusate se non è stato chiaro, anche se non è stato necessario inserire la demo qui per questo né per il codice. Tuttavia, vorrei ringraziare le persone che stanno cercando di aiutare!

È stato utile?

Soluzione

Sono d'accordo con Outis - abbiamo bisogno di altro codice.

Detto questo:

  • Sei sicuro di fare tutto il tuo lavoro all'interno della funzione $ (document) .ready?
  • Hai sicuramente un body tag correttamente formato (e chiuso) e un xhtml valido?
  • Succede su tutti i browser?

Un suggerimento:

Il problema persiste se si inserisce la funzione positioneerElement nella funzione $ (documento). già? Mi chiedo se il browser valuti document.body prima del caricamento del documento.

$(document).ready(function() {
    function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });

    // your other code, including
    positioneerElement();
});

Altri suggerimenti

Assicurati di chiamare $(window).width() dopo di aver incluso il tag <body> (ad es. nel callback pronto) e / o di utilizzare una dichiarazione doctype in modalità standard. Dovresti farlo comunque: Quirks Mode fa schifo.

Il problema è che per leggere le dimensioni del riquadro di visualizzazione in modalità Quirks jQuery deve guardare document.body.clientWidth anziché document.documentElement.clientWidth. Se non hai ancora avviato il document.body, non è presente <=> nodo presente.

Devi includere jquery.js e non jquery.min.js Sembra un bug in esso Questo funziona per me

Beh, basandomi solo sulle informazioni che mi hai dato, potrebbe darsi che il corpo non si sia ancora caricato correttamente. Per ulteriori dettagli, consultare qui: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

Direi di più ma sono anche d'accordo con Outis sul fatto che è necessario pubblicare un po 'di codice in più per consentirci di eseguire il debug.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top