jquery获取dom对象宽度或高度值时引发的bug

事情的起因是这样的,cms大学小编通过jquery获取一个dom对象的宽度,这个对象宽度不固定,根据内容的多少而无限延展,内容为图片。然后通过获取到的宽度值来给父容器增加一个滚动条,用于滚动内容,效果如下:

jquery获取dom对象宽度或高度值时引发的bug

但制作中遇到了一些问题,cms大学小编发现获取到的这个宽度值不稳定,有时进入页面,滚动条并未出现,发现此时获取到的宽度只为0,刷新一下页面又好了。根据推测,应该是dom容器的子元素都是图片,但是图片加载时间,而我们的js脚本是这样写的:

折叠JavaScript 代码
  1. jQuery(document).ready(function ($) {  
  2.     ……  
  3. });  

问题就出在这里了,使用document操作只在加载完dom框架后就执行了脚本,但此时图片并未加载,所以造成获取到的宽度值不正确。我们修改为如下格式:

折叠JavaScript 代码
  1. window.onload=function(){  
  2.     ……  
  3. };  

这样在页面所有元素都加载完之后才会执行脚本。完美解决。

Tags: jquery
cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.