我正在使用4-5個primefaces對話框。當點擊ESC我想關閉所有打開的對話框。單擊primefaces中的ESCAPE(ESC)時關閉所有對話框
3
A
回答
3
通過使用widgetVar
指定的客戶端對象調用對話框的hide()
函數。所以,如果你確定你的p:dialog
,如:
<p:dialog widgetVar="dialog1" header="Dialog 1"/>
<p:dialog widgetVar="dialog2" header="Dialog 2"/>
你的ESC鍵應該是這樣的:
<p:commandButton value="ESC" onclick="dialog1.hide();dialog2.hide()"/>
你也可以創建一個可重用p:remoteCommand
關閉所有對話框,並使用您的p:commandButton
或p:hotkey
- 如果通過「點擊ESCAPE」您的意思是hittig退出按鈕:
<p:remoteCommand name="closeAll" onsuccess="dialog1.hide();dialog2.hide()"/>
然後在您的組件中參考t他closeAll()
命令:
<p:hotkey bind="esc" handler="closeAll()"/>
<p:commandButton value="ESC" onclick="closeAll()"/>
2
雖然職位是舊的,但得到的答覆是相當靜態的解決方案,下面是一個動態的使用jQuery。
function escDialog() {
$(document).keyup(function(e) {
if (e.keyCode == 27) { // esc code is 27
closeAllDialog() ;
}
});
}
function closeAllDialog() {
for (var propertyName in PrimeFaces.widgets) {
if (PrimeFaces.widgets[propertyName] instanceof PrimeFaces.widget.Dialog ||
PrimeFaces.widgets[propertyName] instanceof PrimeFaces.widget.LightBox) {
PrimeFaces.widgets[propertyName].hide();
}
}
}
然後在您的document.ready,你會打電話escDialog()
希望這有助於。
相關問題
- 1. 如何通過單擊外部對話框關閉PrimeFaces中的對話框?
- 2. 對話框關閉不primefaces
- 3. Qt - Esc不應關閉對話框
- 4. 關閉對話框後關閉對話框後按ESC鍵(僅鉻)
- 5. 不要關閉esc或通過點擊對話框外部
- 6. 使ESCAPE(ESC)鍵關閉窗口
- 7. 單擊外部關閉對話框
- 8. 單擊模態iframe關閉對話框?
- 9. 如何MBProgress對話框單擊關閉
- 10. 關閉或不關閉:按下「Escape」時的對話框應用程序
- 11. Primefaces輸入密鑰關閉對話框
- 12. 從iFrame關閉primefaces對話框
- 13. 忽略對話框關閉JSF primefaces
- 14. 當點擊它時關閉對話框
- 15. 如何點擊時關閉對話框?
- 16. 檢測並關閉所有對話框
- 17. 關閉jquery ui對話框時點擊了對話框
- 18. 關閉對話框後,在數據表中清除選擇Escape
- 19. 如何僅關閉WPF/WinForms中ESC鍵上的單個對話框?
- 20. Primefaces對話窗口 - Valiation關閉對話框
- 21. 在ASP.NET中關閉主窗口時關閉所有彈出對話框
- 22. 對話框沒有關閉
- 23. JQUERYUI-單擊圖像時關閉模式對話框
- 24. 單擊疊加層時Material-ui對話框不關閉
- 25. jQuery - 關閉對話框單擊外部時
- 26. Android關閉所有對話框後關閉活動
- 27. JSF Primefaces - 關閉對話框時顯示另一個頁面
- 28. 我無法在關閉對話框中關閉對話框
- 29. 在Android中關閉對話框而不關閉對話框
- 30. 關閉jQuery UI的對話框中單擊
此標題和描述是有意義的,因爲您明確指定了操作(單擊),但我必須承認這完全是令人困惑的。 –