13

这是对错误关闭的问题的重做:jQuery 1.8 outer Height/Width not working

我遇到了同样的问题。现在返回 jQuery 对象而不是数字outerWidthouterHeight

我们使用的是 2012 年 1 月 10 日发布的 jQuery UI 1.8.17。它不是一个超级旧的版本,所以我感觉其他人会看到这个。由于一些糟糕的 jQuery ui 插件,我们被锁定在这个版本中,因此目前无法选择升级。

如果我找到解决方案,我会回答这个问题。

这是一个演示问题的小提琴http://jsfiddle.net/delvarworld/yxDHu/(在“管理资源”中添加了 jQuery UI 版本)

更新:这是因为 jQuery UI 中的这一行:

return orig[ "outer" + name ].call( this, size );

在 jQuery 1.8.2 中错误地触发了这种情况:

var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),

因为即使size未定义,检查也是针对arguments.length. chainable 在这里应该是假的。你可以传入 undefined ,它仍然会使参数成为长度为 1 的对象。有人需要阅读他们的 JS ;)

4

3 回答 3

8

一个简单的解决方案似乎只是传入false

$(document.body).outerWidth(false);

或者,如果您想要边距,则为 true,但如果您传入 true,则看起来您不会遇到此错误。

于 2012-10-03T23:37:12.883 回答
7

看起来是 jqueryUI 问题。似乎已在 1.8.22 中修复。

With jquery UI 1.8.21: http://jsfiddle.net/yVq5H/13/

With jquery UI 1.8.22 (fixed): http://jsfiddle.net/yVq5H/14/

于 2012-12-10T17:22:47.153 回答
2

我建议升级你的 jQuery 和 jQuery UI 包。1.8.1 和 1.8.2 尤其解决了与 outerWidth / outerHeight 相关的问题,当然 jQuery UI 需要保持同步。

请参阅公告上的更改日志以供参考:

http://blog.jquery.com/

http://blog.jqueryui.com/

于 2012-10-03T23:17:08.973 回答