我正在尝试获取隐藏的一些选择元素的宽度.在
JQuery对象上使用width()返回宽度,该宽度是CSS定义的宽度,但包括填充.一旦我切换要显示的元素,调用width()将返回正确的值(即不包括填充/边框/边距的宽度).
示例HTML:
<span id="test" style="visibility:hidden">
<select id="one">
<option>1</option><option>2</option><option>3</option>
</select>
</span>
CSS:
select {
width: 80px;
padding: 0 0 0 15px;
}
预期宽度:65,报告宽度:80
这是一个JSFiddle演示我的问题:http://jsfiddle.net/2RH7C/4/
除了设置“visibility:hidden”(而不是display:none),还是克隆/移动屏幕上的对象之外,还有其他解决方法吗?我正在使用KnockoutJS数据绑定来控制可见性,并且该绑定设置display:none(http://knockoutjs.com/documentation/visible-binding.html).
最佳答案 这似乎是jQuery 1.7中的一个错误,它在jQuery 1.8中没有出现:
如果您没有更新jQuery的选项,那么我担心它似乎是“使用屏幕外元素计算”或可见性:隐藏方法是您唯一的选择.