jQuery 1.8.2 +非当前jQuery UI = outerWidth和outerHeight坏了

And*_*Ray 13 jquery version outerwidth

这是一个错误关闭的问题的重做: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 );
Run Code Online (Sandbox Code Playgroud)

在jQuery 1.8.2中错误地触发了这个条件:

var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
Run Code Online (Sandbox Code Playgroud)

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

And*_*Ray 8

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

$(document.body).outerWidth(false);
Run Code Online (Sandbox Code Playgroud)

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


war*_*ckh 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/