我在很多地方使用了outerHeight
和outerWidth
。现在,在 jQuery 1.8 发布后,我遇到了很多由对象返回而不是其大小引起的问题。
例如:
$('#stackoverflowdiv').Height() // returns 100 px
$('#stackoverflowdiv').outerHeight() // returns "stackoverflowdiv" div
我发现解决此问题的唯一方法是在函数中使用“true/false”,如下所示,但我得到与标准 width()
和 相同的结果height()
函数:
$('#stackoverflowdiv').outerHeight(true) // returns 100 px
$('#stackoverflowdiv').outerHeight(false) // returns 100 px
有谁知道为什么这不再有效或以其他方式获取元素的高度/宽度+其边距。
编辑:我开始相信这是因为我使用 contents()
函数在 iframe 中选择元素造成的。我会尝试做一个演示。
最佳答案
这实际上是一个已知的 jQuery 错误,您可以阅读 here .
我在没有参数的情况下遇到了这种情况,解决方法是设置参数(即使有默认的 {false}),但我能够通过将 true 参数替换为 1 并将 false 替换为 0 来打破 Barlas 的 fiddle 。因此,如果您是的话,请不要这样做。
这样做:
alert(jQuery(this).outerHeight(false));
不要这样做:
alert(jQuery(this).outerHeight());
alert(jQuery(this).outerHeight(0));
关于jQuery 1.8 外部高度/宽度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12093806/