jquery-ui ダイアログに表示される要素の幅を取得しようとしています。
ダイアログは、ロード時に display:none に設定されます。これにより、幅を取得できません。
表示して幅を取得し、すぐに非表示にして幅を取得する必要がありますか? または、私が気付いていない他のオプションがありますか?
ありがとう
次の 2 つのオプションがあります。
display:none
、その子の寸法を取得する唯一の方法は、show/get_dimensions/hide です。visibility:hidden
は、何もする必要はありません。寸法を取得するだけです。ただし、jquery-ui コンテナーを に設定するvisibility:hidden
ことは、システム全体の動作を変更する可能性があるため、良いことではありません。display:none
jquery-ui-dialog スクリプトのどこかにテストがある可能性があり、それを使用して変更すると、visibility
このテストが壊れます。さらに、存在しない場合、jquery-ui の将来のバージョンに存在しないという保証はありません。
最初のソリューションで寸法をすばやく取得するには、この回答を参照してください。
Mootools は、Mootools-more の Element.measure で表示/測定/非表示の手法を実装しています。Mootools はフレームワーク ラッパーを提供する代わりに要素を直接拡張するため、生のコードは jQuery では機能しませんが、目的に合わせて簡単に適応させることができます。