13

これは、誤って閉じられた質問のやり直しです:jQuery1.8の外側の高さ/幅が機能しない

私は同じ問題にぶつかっています。outerWidthそしてouterHeight今、数字の代わりにjQueryオブジェクトを返します。

2012年1月10日にリリースされたjQueryUI1.8.17を使用しています。これは非常に古いバージョンではないため、他の人に見られると思います。いくつかのひどいjQueryuiプラグインのために、このバージョンにロックされているため、現在、アップグレードはオプションではありません。

解決策が見つかったら、この質問に答えます。

これが問題を示すフィドルです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はfalseである必要があります。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とjQueryUIパッケージの両方をアップグレードすることをお勧めします。特に1.8.1と1.8.2は、outerWidth / externalHeightに関連する問題に対処し、jQueryUIはもちろん同期を保つ必要があります。

参考のために、アナウンスの変更ログを参照してください。

http://blog.jquery.com/

http://blog.jqueryui.com/

于 2012-10-03T23:17:08.973 に答える