jQuery 1.8.2 +非当前jQuery UI = outerWidth和outerHeight坏了
这是一个错误关闭的问题: jQuery 1.8外部高度/宽度不起作用
我遇到了同样的问题。 outerWidth
和outerHeight
现在返回jQuery对象而不是数字。
我们正在使用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
。 可链接在这里应该是假的。 你可以传入undefined,它仍然会使参数成为长度为1的对象。有人需要阅读他们的JS;)
一个简单的解决方案似乎只是传递false
$(document.body).outerWidth(false);
或者,如果您想要边距,则为true,但如果您传入true,则看起来您不会遇到此错误。
看起来像是jqueryUI问题。 似乎在1.8.22中修复。
With jquery UI 1.8.21:
http With jquery UI 1.8.21:
//jsfiddle.net/yVq5H/13/
With jquery UI 1.8.22 (fixed):
http With jquery UI 1.8.22 (fixed):
//jsfiddle.net/yVq5H/14/
我建议升级你的jQuery和jQuery UI包。 1.8.1和1.8.2特别解决了与outerWidth / outerHeight相关的问题,当然jQuery UI需要保持同步。
请参阅公告中的更改日志以供参考: