我有用到一个美化select控件的jquery控件,可是最近突然发现在IE的对话框中有时候会出现异常的情况。跟踪代码后发现是在控件调用jQuery的width函数时返回了零,导致显示不出来了。而这个获取是根据原对象的width来的,原select对象的style="width:155px",有指定width。但是在调用width()函数获取到的结果是0。另外补充说明:
1、我为了避免渲染延迟,控件处理都是在页面最后加一段JAVASCRIPT进行处理的。
2、如果改到onload或者ready事件中处理是没问题的
3、如果不是IE对话框也没有发现问题有谁能告诉这是什么原因,是jQuery的bug吗?貌似jquery取了offsetWidth,这个属性在IE对话框的ready之前也是0。

解决方案 »

  1.   

    用$("select").css("width");吧
    天知道Jquery.width()取得是什么宽度
      

  2.   

    $().width() 是jq自行封装的方法. 返回值兼容各种浏览器后呈现在页面的实际像素值. 例子你可以多试试. 再有就是你说的对话框是什么? alert() confirm()? 
    另, 所以针对页面上的dom操作请都放到$(document).ready()中, 因为html解析时顺序加载, 所以很有可能导致在执行某语句时页面的dom并不完整.
      

  3.   

    里面好像没有offsetWidth这个方法吧?
      

  4.   

    里面好像没有offsetWidth这个方法吧?