0

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

我的代码是:

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

只有在第二次调用该函数后,我才能获得组合框的真正价值。第一次是获取执行前的宽度 $(".combobox").css('width', '100%');

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

提前致谢!

4

2 回答 2

1

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

脚本执行时浏览器不会进行调整大小计算。如果你安排一个定时器并退出 JS 函数,浏览器会更新所有改变的 DOM 元素的状态,然后启动定时器,所以到那时你的组合框的宽度已经更新了。

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

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

于 2010-04-15T07:43:44.420 回答
0

尝试链接这两个函数:

function resize() {
    var width = $(".combobox").css('width', '100%').width();
}
于 2010-04-15T07:33:46.607 回答