Frage

Ich bin einen document.body mit in meinem Javascript ist null Fehler, weil ich benutze:

$(window).width()

als Wert einer Variablen in meinem

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

Ich wäre sehr dankbar für jeden, der mir dabei helfen könnte.

Mit freundlichen Grüßen

edit: sorry, wenn das alles war unklar. Ich habe eine Demo an: http://www.wpmonk.com/demo/hypowired zunächst lädt das Thema, aber dann weiß wird (aufgrund des Fehlers), aber wenn Sie neu zu laden können Sie das ganze Thema sehen, denn dann weiß, dass er den Wert für $ (Fenster) .width ()

Ich verwende diesen Code das Layout zentriert (nicht möglich mit CSS, weil die Linke eine Breite aswell haben muss.)

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

Ich nenne Funktion positioneerElement() in der Ladefunktion.

Sorry, wenn dies ich nicht klar war, obwohl es nicht notwendig war, für diese die Demo hier setzt noch den Code. Ich möchte jedoch die Menschen danken, die versuchen zu helfen!

War es hilfreich?

Lösung

ich mit Outis zustimmen - wir mehr Code benötigen

.

Wie gesagt:

  • Sind Sie sicher, dass Sie tun, alle Ihre Arbeit innerhalb der $ (document) .ready Funktion?
  • Sie haben auf jeden Fall einen korrekt gebildet (und geschlossen) Body-Tag und valid xhtml?
  • Geschieht dies auf allen Browsern?

Ein Vorschlag:

Tritt das Problem auch, wenn Sie die positioneerElement Funktion in der $ (document) .ready Funktion als auch setzen? Ich frage mich, ob der Browser document.body vor dem Laden von Dokumenten ausgewertet wird.

$(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();
});

Andere Tipps

Stellen Sie sicher, dass Sie nur anrufen $(window).width() nach Sie haben den <body> Tag enthalten (z. B. in dem Bereitschafts Rückruf), und / oder eine Doctype Deklaration Standards-Modus verwenden. Sie sollten tun das sowieso. Quirks-Modus saugt

Das Problem ist, die Darstellungsgröße im Quirks-Modus jQuery zu lesen statt document.body.clientWidth bei document.documentElement.clientWidth aussehen muss. Wenn Sie Ihre <body> noch nicht begonnen haben, gibt es nicht document.body Knoten vorhanden sind.

Sie müssen schließen jquery.js, und nicht jquery.min.js Es sieht aus wie ein Fehler drin Dies funktioniert für mich

Nun, basierend nur auf den Informationen, die Sie mir gegeben haben könnte sein, dass der Körper noch nicht richtig geladen ist. Sehen Sie hier für mehr detials: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

Ich möchte sagen, aber ich auch einverstanden mit Outis, die Sie brauchen etwas mehr Code für uns zu debuggen veröffentlichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top