4

modal dialogその上に他の非モーダルパネルまたはダイアログを開く必要があるいくつかの「ヘルプリンク」を 含むフォームがあります(メインダイアログをモーダルのままにします)。

ただし、これらは常にマスクの後ろで終わります。 YUI最高のものを認識しz-index、マスクとモーダルダイアログをそれよりも高く設定しているようです。

ヘルプ コンテンツをパネル化するのを待っている場合は、より高い z-index を持つように設定できます。ここまでは順調ですね。問題は、二次的な非モーダル ダイアログ内のフィールドにフォーカスを当てることができないことです。それらの下にあるモーダル ダイアログは、フォーカスが最初のモーダル ダイアログ以外に移動するのを何らかの形で妨げているようです。

YUIがこれを許可しない場合は、jQueryでこの「ダイアロググループモダリティ」を実行できればそれも受け入れられます。

ヘルプ!

4

2 に答える 2

4

デフォルトでは、YUI は、YAHOO.widget.Overlay を拡張し、オーバーレイ パネルを使用するあらゆるものの z-index を管理します。これは、YAHOO.widget.Overlay の「bringToTop」メソッドを通じて行われます。「bringToTop」メソッドを空の関数に変更するだけで、これをオフにすることができます。

YAHOO.widget.Overlay.prototype.bringToTop = function() { };

そのコードは完全にオフにするので、これを container.js ファイルの最後に置くだけで済みます。このアプローチはちょっとやりすぎだと思うので、YUI クラスを拡張し、「super.constuctor」を呼び出した後に次のように記述します。

this.bringToTop = function() { };

これを行うと、要素の z インデックスを自分で管理することを YUI に伝えることになります。それはおそらく問題ありませんが、実行する前に考慮すべきことがあります。

于 2008-10-02T13:39:07.653 に答える
0

ユーザーが他の要素と対話することになっている場合、元のダイアログをモーダルにすることはできません。これがモーダルの定義です。元のダイアログは本当にモーダルである必要がありますか?もしそうなら、他の要素を開く前に、元のダイアログのモーダルプロパティを切り替えようとしましたか?

于 2008-09-17T10:10:51.137 に答える