2011-08-04 9 views
3

JSFページでjQuery UIモーダルダイアログを使用していますが、これもダイアログのdiv内にプライムフェイスコンポーネントがあります。モーダルプロパティをtrueに設定すると、オーバーレイはダイアログコンテンツも覆い隠します。ここに私のダイアログ定義は次のとおりです。JQuery UI 1.8.2ダイアログをカバーするオーバーレイ

if (jQuery("#rangeChoice").val() == 'Custom') {  
    jQuery("#rangeDialog").dialog({ 
    modal: true, 
    draggable: false, 
    minHeight: 375, minWidth: 450, 
    resizable: false, 
    title: 'Create Custom Date Range', 
    closeOnEscape: false, 
    open: function(event, ui) { jQuery(".ui-dialog-titlebar-close").hide(); } 
    }); 
return; 
} 

とdivのための私のコンテンツ:

<div id="rangeDialog" style="display: none;"> 
<div class="customRangeButtons" style="z-index: 4999;"> 
    <!-- Clipped for brevity, the buttons alone are covered by the overlay --> 
    <span> 
     <p:commandButton value="Cancel" actionListener="#{bean.cancelCDR}" update="pGraphs"/> 
    </span> 
    <span style="margin-left: 300px;"> 
     <p:commandButton value="Submit" type="submit" action="#{bean.saveCDR()}" update="pGraphs"/> 
    </span> 
</div>  

私はPrimefaces 2.2.1を使用しています、と私は制御している人に関連した感覚を持っていますオーバーレイdiv。私はページに自分のオーバーレイdivを追加して、非モーダルダイアログのオープンイベントでそれを表示しようとしました。また、z-index値> 3のダイアログもカバーしました。値1と2は、ページ上の他のコントロールがそれを上回っていても問題ありませんでした。これは、p:dialogを使用してactionListenerを起動させなかったための回避策です。

他に何を試すことができますか?

答えて

5

divタグのZインデックスが.dialogによってオーバーライドされています。 .dialogのデフォルトのz-indexが1000です。あなたがそうのようなzIndexオプションを変更してダイアログを作成するときは、これを変更することができます http://jqueryui.com/demos/dialog/

jQuery("#rangeDialog").dialog({ 
    modal: true, 
    draggable: false, 
    minHeight: 375, minWidth: 450, 
    resizable: false, 
    title: 'Create Custom Date Range', 
    closeOnEscape: false, 
    open: function(event, ui) { jQuery(".ui-dialog-titlebar-close").hide(); }, 
    zIndex: 4999 
    }); 

は、詳細はドキュメントのオプション]タブを参照してください。

+0

私はzIndexオプションを追加しましたが、私は同じ結果を得ます。私は先に進んでzIndex:32000を試しましたが、それはまだオーバーレイの背後にありました。 zIndexが-1の場合、オーバーレイはまったく表示されませんでした。 –

+1

divのスタイルタグも削除しましたか? –

+0

私はしていませんでした。今のスタイルを削除し、同じ結果が得られます。 –

関連する問題