以下是代码:
var b = this;
b.children("li").each(function() {
var c = jQuery(this).find("div:first");
var g = c.outerWidth();
alert(g);
}
警报语句抛出的值是每次迭代的常量值“3”,尽管它应该不同。仅在 IE8 中的错误。原因和解决方法?
以下是代码:
var b = this;
b.children("li").each(function() {
var c = jQuery(this).find("div:first");
var g = c.outerWidth();
alert(g);
}
警报语句抛出的值是每次迭代的常量值“3”,尽管它应该不同。仅在 IE8 中的错误。原因和解决方法?
这不是一个错误。outerWidth
返回“匹配元素集中第一个元素的当前计算宽度,包括填充和边框” [1]。
只是碰巧在 IE8 中,由于呈现差异,内容的宽度与其他浏览器不同。
您可以通过为 div 指定固定宽度(例如width: 640px
)来验证此行为,这将导致所有浏览器中的行为一致。有关演示,请查看:
默认情况下,div
占据其父元素的整个宽度。所以所有的 div 都将具有相同的宽度:
示例:http: //jsfiddle.net/fwHe5/1/
现在,如果你改变它,让 div 的浮动向左并相对定位,它们不再占据整个宽度。
示例:http: //jsfiddle.net/fwHe5/2/