2013-02-19 11 views
18

jQuery UI(1.10)の最新バージョンでzIndexオプションを削除しました。 jQueryのウェブサイトでも確認されています。なぜjQueryのUI 1.10 jQueryのダイアログを削除するzIndexオプション?

本当に私に衝撃を与えました。

editrow()またはaddrow()を使用して編集ダイアログを開いて編集したり、内部に多数のフィールドがあり、その中にはイベントを定義するものがあります。それをクリックすると、別のjQueryダイアログが表示され、いくつかのツリービュー項目が選択されて表示されます。 jQueryのUI 1.9(付属)の下

は、あなたが( zIndex設定jqgrid編集ダイアログのサポート)jqgrid編集ダイアログのより大きいにjQueryのダイアログの zIndexオプションを設定することができますので、jQueryのダイアログが常に上になると見て使用することができます。

jQuery UI 1.10では、zIndexを設定できないため、jQueryダイアログは常にjqgrid編集ダイアログの後ろにあります。

このようなシーンは非常に一般的だと思います。

なぜjQuery UI 1.10 jQueryダイアログを削除するzIndexオプション?複数のダイアログがあるときにz-indexの順序を制御するにはどうすればよいですか?

答えて

26

私はあなたの問題を理解していると思います。 jQuery UIダイアログのCSS z-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. */ 
} 
+1

ありがとうございます、これは修正されると思います。しかし、jQueryダイアログでzIndexオプションを削除しないことをお勧めします。 – ivanchain

+0

jQuery UIはオープンソースなので、そこに何が入っているのか、今何に影響を与えているのでしょうか?正当な理由がある場合は、おそらく聞くでしょう。ここでスタートセットを入手できます:http://contribute.jquery.org/open-source/ – amenthes

+0

このコードはまだ動作します!これをありがとう! – sim1

6

ただ、(一緒にそれのために提出されているthe bugで)jQuery UI 1.10からの変更は、ログ読み:

は、スタック・オプションと同様のZIndexオプション

を削除し、のZIndexオプションは不要です適切な積み重ねを実施します。 z-indexはCSSで定義されています。 をフォーカスするダイアログがその親の最後の「スタッキング」要素であることを確認することで、スタッキングが制御されるようになりました。

つまり、zIndexオプションを使用して積み重ねる方法を「ハッキングする」のではなく、要素を積み重ねる必要があります。

+6

しかし、zIndexオプションはzオーダーを制御する簡単な方法です。私はそれが "ハッキング方法"だとは思わないのです。要素プロパティをスタックする方法は?フォーカスされたダイアログは、多くのオブジェクトがある場合、必ずしもその親の最後のスタッキング要素ではありません。 – ivanchain

+0

MarcoK、jquery UI 1.10は、フォーカスされたダイアログを自動的に上に積み重ねることを意味しますか?私はそうではないと分かった。それともトップに積み重ねる必要があるのですか? – ivanchain

+4

誰かがzIndexなしで絶対配置された要素を使って "適切な積み重ね実装"の例を持っていますか? – JoshNaro

0

"appendTo"オプションを試しましたか?あなたが必要とするもののz-インデックスを持つラッパーを動的に追加し、その要素のidを "appendTo"引数のセレクターとして使用します。

http://api.jqueryui.com/dialog/#option-appendTo

-2
$('#element').dialog({  modal: true, 
          stack: false, 
          zIndex: 9999, 
... 

あなたはできるだけ早くあなたがダイアログをインスタンスとしてのjQueryを使用してのZIndexを適用したい場合は、次の操作を行うことができます私のため

+0

jQuery UIのバージョンが1.10未満です。 – Nek

+0

はい、zIndexはバージョン1.10で廃止されました – PapillonUK

2

を働いた:

$('#element').dialog({ your options... }).parent('.ui-dialog').css('zIndex',9999); 
関連する問題