Pergunta

Eu estou tendo um document.body é erro nulo no meu javascript porque eu uso:

$(window).width()

como valor a atribuir a uma variável no meu

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

Eu ficaria muito grato a alguém que pudesse me ajudar com isso.

Atenciosamente

edit: desculpe se isso tudo não era clara. Eu tenho um programa demonstrativo em: http://www.wpmonk.com/demo/hypowired No início, o tema irá carregar, mas depois torna-se branco (por causa do erro), mas quando você recarregar você pode ver todo o tema, porque então ele sabe o valor para $ (janela) .width ()

Eu estou usando este código para centralizar o layout (não é possível com css porque as necessidades de esquerda para ter um aswell largura.)

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

Eu chamo função positioneerElement() na função de carga.

Desculpe se isso não estava claro que embora não fosse necessário colocar o demo aqui para isso, nem o código. No entanto, eu gostaria de agradecer as pessoas que estão tentando ajudar!

Foi útil?

Solução

Eu concordo com outis - precisamos de mais algum código

.

Dito isto:

  • Você tem certeza de que está fazendo todas o seu trabalho dentro do (documento) função de .ready $?
  • Você definitivamente tem um tag corpo corretamente formado (e fechada) e XHTML?
  • Isso acontece em todos os navegadores?

Uma sugestão:

O problema persiste se você colocar a função positioneerElement na (documento) função de .ready $ também? Eu estou querendo saber se os avalia navegador document.body antes do carregamento do 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();
});

Outras dicas

Certifique-se de você só $(window).width() chamada após você incluiu a tag <body> (ex. Na callback pronto), e / ou usar uma declaração doctype Standards Mode. Você deve estar fazendo isso de qualquer maneira:. Quirks Mode suga

A questão é, para ler o tamanho da janela no modo Quirks jQuery deve olhar para document.body.clientWidth vez de document.documentElement.clientWidth. Se você ainda não começou a sua <body> ainda, não há document.body nó presente.

Você tem que incluir jquery.js, e não jquery.min.js Parece que algum bug nele Isso funciona para mim

Bem, apenas com base nas informações que você tem me dado pode ser que o corpo ainda não foi carregado corretamente. Consulte aqui para mais detials: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

Eu diria mais, mas eu também concordo com outis que você precisa postar mais algum código para nós depuração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top