使用$(el).css()调整元素大小后是否可以获得元素的大小?
我的代码是:
function resize() {
$(".combobox").css('width', '100%');
var width = $(".combobox").width();
}
只有在第二次调用函数后才能获得组合框的实际值。第一次是在执行$(“。combobox”)之前得到宽度.css('width','100%');
我认为这是在.css()之后没有重新创建DOM的错误。有没有办法强制DOM重新加载?
提前致谢!
答案 0 :(得分:1)
尝试将获取宽度的代码部分放入计划为1毫秒的计时器中......
在脚本执行时,浏览器不会执行调整大小计算。如果您安排计时器并退出JS功能,浏览器将更新所有已更改的DOM元素的状态,然后启动计时器,这时组合框的宽度已更新。
我在基于GWT的网页中使用了非常相似的东西
这个技巧不仅适用于JS,而且适用于许多GUI框架,它们以延迟的方式进行布局。
答案 1 :(得分:0)
尝试链接这两个函数:
function resize() {
var width = $(".combobox").css('width', '100%').width();
}