2012-09-17 36 views

回答

4

我不是jquery/javascript專家,那裏colud是更優雅的解決方案。

<p:commandButton id="chartBtn" value="Basic" type="button" /> 
<p:overlayPanel id="chartPanel" widgetVar="chartPanelWidget" for="chartBtn" hideEffect="fade" 
            onShow="$(document.body).unbind('mousedown.ui-overlay')"> 
    <p:commandButton value="close" onclick="chartPanelWidhget.hide();return false;"/> 
</p:overlayPanel> 
+0

此jQuery禁用頁面上所有疊加層的mousedown反應。如果您有更多疊加層,並且不希望所有疊加層都具有此行爲,則可能不需要。 – Przemek

+0

@ alex.parej你是如何發現它正在發射'mousedown.ui-overlay'事件的?請告訴我!! –

+0

當我發現它時,我正在閱讀PrimeFaces的源代碼。 –

6

如果使用Primefaces 4快照有一個名爲dismissable屬性。當您將其設置爲false時,只能通過再次單擊該按鈕來關閉疊加層。

+0

也可以添加showCloseIcon =「true」以顯示PrimeFaces 5上的關閉按鈕。* – bmkorkut