Question

Je reçois un document.body est une erreur nulle dans mon javascript parce que j'utilise:

$(window).width()

comme valeur à affecter à une variable dans mon

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

Je serais très reconnaissant à quiconque pourrait m'aider avec cela.

Cordialement

edit: désolé si tout cela n'était pas clair. J'ai une démonstration à l'adresse http://www.wpmonk.com/demo/hypowired . au début, le thème se charge mais devient blanc (à cause de l'erreur), mais lorsque vous rechargez, vous pouvez voir le thème en entier car il connaît la valeur de $ (window) .width ()

J'utilise ce code pour centrer la mise en page (impossible avec css car la gauche doit également avoir une largeur.)

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

J'appelle la fonction positioneerElement() dans la fonction de chargement.

Désolé si ce n'était pas clair, je pensais qu'il n'était pas nécessaire de mettre la démo ici pour ceci ni le code. Cependant, je voudrais remercier les personnes qui essaient d’aider!

Était-ce utile?

La solution

Je suis d'accord avec outis - nous avons besoin de plus de code.

Cela dit:

  • Êtes-vous sûr de faire tout votre travail dans la fonction $ (document) .ready?
  • Avez-vous vraiment une balise body correctement formée (et fermée) et un xhtml valide?
  • Cela se produit-il sur tous les navigateurs?

Une suggestion:

Le problème persiste-t-il si vous mettez également la fonction positioneerElement dans la fonction $ (document) .ready? Je me demande si le navigateur évalue document.body avant le chargement du document.

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

Autres conseils

Assurez-vous que vous appelez $(window).width() seulement après l'inclusion de la balise <body> (par exemple, dans le rappel prêt) et / ou utilisez une déclaration doctype en mode standard. Vous devriez le faire quand même: le mode Quirks est nul.

Le problème est que, pour lire la taille de la fenêtre en mode Quirks, jQuery doit regarder document.body.clientWidth au lieu de document.documentElement.clientWidth. Si vous n'avez pas encore démarré votre document.body, il n'y a pas de <=> nœud présent.

Vous devez inclure jquery.js, et non jquery.min.js Cela ressemble à un bug Cela fonctionne pour moi

Eh bien, sur la base des informations que vous m'avez données, le corps n'a peut-être pas été chargé correctement. Veuillez consulter ici pour plus d'informations: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

Je dirais plus, mais je suis aussi d'accord avec l'idée qu'il est nécessaire de poster du code supplémentaire pour que nous puissions déboguer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top