2017-04-05 6 views
0

私はこの独特な状況に陥っています。まず、そこモーダルだとページの残りの部分は、オーバーレイによって隠されている:モーダルオーバーレイがアクティブなときにポップアップ入力にフォーカスする

<div class="overlay"></div> 
.overlay { 
position: fixed; 
width: 100%; 
height: 100%; 
visibility: hidden; //visible when modal pops up of course 
top: 0; 
left: 0; 
z-index: 2900; 
} 

モーダルの内部で、次のイベントリスナーを持っているいくつかの要素があります。

el.find('select').on('mousedown', function (e){ 
    if (event.which === 3) { 
    ...popup window containing contenteditable div gets formed and added to modal, it gets el boundingClientRect data to sit tight on it. So far so good, but - 
    popup.focus(); 

は動作しません。 js + jqueryを試してポップアップをページのどこにでも配置しましたが、nada。それはコンソールの質問でもない。ポップアップをクリックすると、結果はゼロになります。オーバーレイを削除すると、すべてが機能します。理由を理解できません...

レイヤーを再表示するには、オーバーレイで覆われた残りの部分があり、それにはモーダル(z-インデックス:3000)があり、ポップアップが呼び出されます(z-インデックス:3010)。

編集:今ここフィドルだ - https://jsfiddle.net/zumbauuo/

問題が解決しません。昨日のオリジナルのドキュメントでは、overlay divを削除してモーダル構造を維持するときに、このコードに焦点を当てたポップアップを得ることができました。だから私はもう何を考えるべきか分からない。

+1

私は、これはあなたが探している答えではない知っているが、あなたはHTML5ダイアログを試してみましたか? https://developer.mozilla.org/en/docs/Web/HTML/Element/dialog ダイアログ/モーダルケースのためのより洗練された最新ソリューションです。 –

+0

@Ciryo:あなたはフィドルを作成できますか? –

+0

ダイアログは間違いなく優雅ですが、私はこのケースではモーダルを使用することに幾分制限されています。また、私はSafariサポートが必要です。しかし、チップのための高尚な、私は間違いなく将来の何かを絞るでしょう。フィドルについては、次回の締め切りは今では重視されています。申し訳ありません。これまでのアイデアがなければ、私は夕方にフィドルを作ります。 – Ciryo

答えて

0

てみてください:

.on("change", handler) 
+0

選択フィールドを右クリックするとポップアップが作成されます。その目的は、ユーザが新しい

関連する問題