Pregunta

Estoy teniendo un document.body es un error nulo en mi javascript porque uso:

$(window).width()

como valor para asignar a una variable en mi

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

Estaría muy agradecido con cualquiera que pudiera ayudarme con esto.

Saludos cordiales

editar: perdón si todo esto no estaba claro. Tengo una demostración en: http://www.wpmonk.com/demo/hypowired al principio, el tema se cargará, pero luego se vuelve blanco (debido al error), pero cuando vuelve a cargar, puede ver todo el tema porque entonces conoce el valor de $ (ventana) .width ()

Estoy usando este código para centrar el diseño (no es posible con css porque la izquierda también debe tener un ancho).

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

Llamo a la función positioneerElement() en la función de carga.

Lo siento si esto no estaba claro, aunque no era necesario poner la demostración aquí para esto ni para el código. ¡Sin embargo, me gustaría agradecer a las personas que están tratando de ayudar!

¿Fue útil?

Solución

Estoy de acuerdo con outis: necesitamos más código.

Dicho eso:

  • ¿Está seguro de que está haciendo todo su trabajo dentro de la función $ (document) .ready?
  • ¿Definitivamente tiene una etiqueta de cuerpo correctamente formada (y cerrada) y un xhtml válido?
  • ¿Esto sucede en todos los navegadores?

Una sugerencia:

¿El problema persiste si coloca la función positioneerElement en la función $ (document) .ready también? Me pregunto si el navegador evalúa document.body antes de cargar el 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();
});

Otros consejos

Asegúrese de llamar solo a $(window).width() después de que haya incluido la etiqueta <body> (por ejemplo, en la devolución de llamada lista), y / o use una declaración de tipo de modo estándar. Deberías estar haciendo eso de todos modos: el modo Quirks apesta.

El problema es que, para leer el tamaño de la ventana gráfica en el modo Quirks, jQuery debe mirar document.body.clientWidth en lugar de document.documentElement.clientWidth. Si aún no ha comenzado su document.body, no hay <=> nodo presente.

Debe incluir jquery.js, y no jquery.min.js Parece un error Esto funciona para mí

Bueno, basándome en la información que me ha proporcionado, es posible que el cuerpo aún no se haya cargado correctamente. Consulte aquí para obtener más detalles: http : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

Diría más, pero también estoy de acuerdo con outis en que necesita publicar más código para que podamos depurarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top