调整元素大小后获取元素的宽度

时间:2010-04-15 07:29:57

标签: jquery dom width reload

使用$(el).css()调整元素大小后是否可以获得元素的大小?

我的代码是:

function resize() {
    $(".combobox").css('width', '100%');
    var width = $(".combobox").width();
}

只有在第二次调用函数后才能获得组合框的实际值。第一次是在执行$(“。combobox”)之前得到宽度.css('width','100%');

我认为这是在.css()之后没有重新创建DOM的错误。有没有办法强制DOM重新加载?

提前致谢!

2 个答案:

答案 0 :(得分:1)

尝试将获取宽度的代码部分放入计划为1毫秒的计时器中......

在脚本执行时,浏览器不会执行调整大小计算。如果您安排计时器并退出JS功能,浏览器将更新所有已更改的DOM元素的状态,然后启动计时器,这时组合框的宽度已更新。

我在基于GWT的网页中使用了非常相似的东西

这个技巧不仅适用于JS,而且适用于许多GUI框架,它们以延迟的方式进行布局。

答案 1 :(得分:0)

尝试链接这两个函数:

function resize() {
    var width = $(".combobox").css('width', '100%').width();
}