这是一个错误关闭的问题:jQuery 1.8 outer Height/Width not working
我遇到了同样的问题。 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;)
答案 0 :(得分:8)
一个简单的解决方案似乎只是传递false
$(document.body).outerWidth(false);
或者,如果您想要边距,则为true,但如果您传入true,则看起来您不会遇到此错误。
答案 1 :(得分: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/
答案 2 :(得分:2)
我建议升级你的jQuery和jQuery UI包。 1.8.1和1.8.2特别解决了与outerWidth / outerHeight相关的问题,当然jQuery UI需要保持同步。
请参阅公告的更改日志以供参考: