JQuery UI(1.10)の最新バージョンでzIndex
オプションが削除されていることがわかりました。そしてそれはjQueryのウェブサイトで確認されています。
本当にショックでした。これについて考えてください:
Jqgridがあり、editrow()
またはaddrow()
を使用して編集ダイアログを開いて何かを編集し、内部に多くのフィールドがあり、その一部には次のような自己定義のイベントがある場合、クリックすると、別のjQueryダイアログが表示され、選択するツリービューアイテムが表示されます。
JQuery UI 1.9(付属)では、jQueryダイアログのzIndex
オプションをjqgrid編集ダイアログ(jqgrid編集ダイアログのサポートセットzIndex
)よりも大きく設定できるため、jQueryダイアログは常にオンになります。見て使用することができます。
JQuery UI 1.10では、zIndex
を設定できないため、jQueryダイアログは常にjqgrid編集ダイアログの背後にあります。
そのようなシーンは非常に一般的だと思います。
JQuery UI1.10がjQueryダイアログのzIndex
オプションを削除するのはなぜですか?複数のダイアログがある場合にz-index
の順序を制御するにはどうすればよいですか?
私はあなたの問題を理解していると思います。 jQueryUIダイアログのCSSz-indexは、コンテンツの上に常に表示されるほど高くはありません。簡単な修正は次のとおりです。
/* A class used by the jQuery UI CSS framework for their dialogs. */
.ui-front {
z-index:1000000 !important; /* The default is 100. !important overrides the default. */
}
jQuery UI 1.1 から変更ログを読んでください(一緒に バグ それのために提出されました):
zIndexオプションを削除しました
スタックオプションと同様に、適切なスタック実装ではzIndexオプションは不要です。 z-indexはCSSで定義されており、フォーカスされたダイアログがその親の最後の「スタッキング」要素であることを確認することで、スタッキングが制御されるようになりました。
言い換えると、zIndexオプションを使用してスタックする方法を「ハッキング」するのではなく、要素をプロパティスタックする必要があります。
ダイアログをインスタンス化するとすぐにjQueryを使用してzインデックスを適用する場合は、次の操作を実行できます。
$('#element').dialog({ your options... }).parent('.ui-dialog').css('zIndex',9999);
やってみました?
$( ".selector" ).dialog( "moveToTop" );
「appendTo」オプションを使用してみましたか?必要なもののz-indexを使用してラッパーを動的に追加し、その要素のIDを「appendTo」引数のセレクターとして使用します。