แค่อยากจะเพิ่มประสบการณ์ของฉันที่นี่แม้ว่าคำถามจะเก่า: ฉันทามติข้างต้นดูเหมือนว่าการปัดเศษของ jQuery นั้นมีประสิทธิภาพดีพอ ๆ กับการคำนวณที่ไม่มีเหตุผล - แต่ดูเหมือนจะไม่เป็นเช่นนั้นในสิ่งที่ฉันทำ .
องค์ประกอบของฉันมีความกว้างของของเหลวโดยทั่วไป แต่เนื้อหาที่เปลี่ยนแปลงแบบไดนามิกผ่าน AJAX ก่อนที่จะเปลี่ยนเนื้อหาฉันล็อกขนาดขององค์ประกอบไว้ชั่วคราวเพื่อไม่ให้เลย์เอาต์ของฉันเด้งไปมาระหว่างการเปลี่ยนแปลง ฉันพบว่าการใช้ jQuery เช่นนี้:
$element.width($element.width());
ทำให้เกิดความสนุกสนานเช่นมีความแตกต่างของพิกเซลย่อยระหว่างความกว้างจริงและความกว้างที่คำนวณได้ (โดยเฉพาะฉันจะเห็นคำกระโดดจากบรรทัดหนึ่งไปยังอีกบรรทัดหนึ่งซึ่งแสดงว่ามีการเปลี่ยนแปลงความกว้างไม่ใช่แค่ล็อก) จากคำถามอื่น - การรับความกว้างของจุดลอยตัวที่แท้จริงขององค์ประกอบ - ฉันพบ ซึ่งwindow.getComputedStyle(element).width
จะส่งคืนการคำนวณที่ไม่มีเหตุผล ดังนั้นฉันจึงเปลี่ยนรหัสด้านบนเป็นบางอย่างเช่น
var e = document.getElementById('element');
$('#element').width(window.getComputedStyle(e).width);
และด้วยรหัสนั้น - ไม่มีการตีกลับที่ตลก! ประสบการณ์นั้นดูเหมือนจะชี้ให้เห็นว่าค่าที่ไม่เกี่ยวข้องมีความสำคัญกับเบราว์เซอร์จริงไหม? (ในกรณีของฉันคือ Chrome เวอร์ชัน 26.0.1410.65)