質問

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

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

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

YUI が単純にこれを許可しない場合は、この「ダイアログ グループ モダリティ」を jQuery で実行できれば許容されます。

ヘルプ!

役に立ちましたか?

解決

デフォルトでは、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 に伝えることになります。それはおそらく問題ありませんが、実行する前に考慮すべきことがあります。

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top