3

jquery-ui ダイアログに表示される要素の幅を取得しようとしています。

ダイアログは、ロード時に display:none に設定されます。これにより、幅を取得できません。

表示して幅を取得し、すぐに非表示にして幅を取得する必要がありますか? または、私が気付いていない他のオプションがありますか?

ありがとう

4

1 に答える 1

2

次の 2 つのオプションがあります。

  • jquery-ui ダイアログが でなければならない場合display:none、その子の寸法を取得する唯一の方法は、show/get_dimensions/hide です。
  • に設定できる場合visibility:hiddenは、何もする必要はありません。寸法を取得するだけです。

ただし、jquery-ui コンテナーを に設定するvisibility:hiddenことは、システム全体の動作を変更する可能性があるため、良いことではありません。display:nonejquery-ui-dialog スクリプトのどこかにテストがある可能性があり、それを使用して変更すると、visibilityこのテストが壊れます。さらに、存在しない場合、jquery-ui の将来のバージョンに存在しないという保証はありません。

最初のソリューションで寸法をすばやく取得するには、この回答を参照してください。


Mootools-more Element.measure ソリューション:

Mootools は、Mootools-more の Element.measure で表示/測定/非表示の手法を実装しています。Mootools はフレームワーク ラッパーを提供する代わりに要素を直接拡張するため、生のコードは jQuery では機能しませんが、目的に合わせて簡単に適応させることができます

于 2012-06-10T10:37:23.863 に答える