سؤال

أواجه document.body خطأ فارغ في جافا سكريبت الخاص بي لأنني أستخدم:

$(window).width()

كقيمة لتعيينها لمتغير في ملفي

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

سأكون ممتنًا جدًا لأي شخص يمكنه مساعدتي في هذا.

أطيب التحيات

يحرر:آسف إذا كان كل هذا غير واضح.لدي عرض توضيحي في: http://www.wpmonk.com/demo/hypowiredفي البداية سيتم تحميل السمة ولكن بعد ذلك تصبح بيضاء (بسبب الخطأ) ولكن عند إعادة التحميل يمكنك رؤية السمة بأكملها لأنه يعرف قيمة $(window).width()

أنا أستخدم هذا الرمز لتوسيط التخطيط (غير ممكن باستخدام CSS لأن اليسار يحتاج إلى عرض أيضًا.)

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

أنا أسمي وظيفة positioneerElement() في وظيفة التحميل.

آسف إذا لم يكن هذا واضحًا، على الرغم من أنه لم يكن من الضروري وضع العرض التوضيحي هنا لهذا ولا للكود.ومع ذلك أود أن أشكر الأشخاص الذين يحاولون المساعدة!

هل كانت مفيدة؟

المحلول

وأنا أتفق مع outis - نحن بحاجة إلى المزيد من التعليمات البرمجية.

هكذا قال:

  • هل أنت متأكد من أنك تفعل الجميع عملك داخل وظيفة $(document).ready؟
  • هل لديك بالتأكيد علامة نصية (ومغلقة) تم تشكيلها بشكل صحيح وxhtml صالح؟
  • هل يحدث هذا في جميع المتصفحات؟

اقتراح واحد:

هل تستمر المشكلة إذا وضعت positioneerElement هل تعمل في الدالة $(document).ready أيضًا؟أتساءل عما إذا كان المتصفح يقوم بتقييم document.body قبل تحميل المستند.

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

نصائح أخرى

تأكد من استدعاء فقط $(window).width() <م> بعد قمت بتضمين علامة <body> (على سبيل المثال في رد جاهز)، و / أو استخدام تعريف نوع المستند وضع المعايير. يجب أن تقوم به على أي حال: الوضع المراوغات تمتص

والمسألة هي، لقراءة حجم العرض في المراوغات الوضع مسج يجب أن ننظر في document.body.clientWidth بدلا من document.documentElement.clientWidth. إذا لم تكن قد بدأت <body> الخاص بك حتى الآن، ليس هناك document.body عقدة الحاضر.

لديك لتشمل jquery.js، وليس jquery.min.js يبدو أن بعض الأخطاء في ذلك يعمل هذا بالنسبة لي

حسنا، تستند فقط على المعلومات التي قدمتموها لي أنه قد يكون أن الجسم قد لا تحميل بشكل صحيح حتى الان. يرجى الاطلاع هنا لمزيد من ديتيالس: HTTP : //www.coderanch.com/t/122834/HTML-JavaScript/document-body-null-or-not#606782

وأود أن أقول أكثر من ذلك ولكن أنا أتفق أيضا مع outis التي تحتاج إلى إضافة بعض رمز أكثر بالنسبة لنا التصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top