我在很多地方都使用了outerHeightouterWidth。现在,在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));

09-25 19:11