2013-05-17 94 views
0

我有一個div彈出窗口出現在按鈕點擊事件。當彈出窗口顯示給用戶時,我想要禁用屏幕,並且當用戶通過退出鍵或關閉div彈出關閉按鈕(如常規對話框)時再次啓用。我怎樣才能通過Java腳本來做到這一點。javascript彈出並阻止屏幕

+2

你正在尋找被稱爲「行爲模式」。在'Javascript對話模式'上進行搜索會產生你需要的結果。 –

+0

什麼也沒有嘗試,直到我沒有意識到術語對話模型在互聯網上有這麼多的解決方案。 –

回答

0

您可以創建一個覆蓋屏幕的「封面」元素,以防止用戶輸入,除了封面頂部(或內部)的內容。

$('#button').click(function() { $('body').append('<div class="cover"></div>'); });

.cover { width: 100%; height: 100%; position: fixed; top: 0; left: 0; background: rgba(0, 0, 0, 0.5); }

你可以分配事件到蓋子,以當用戶點擊,或按下特定按鍵,封面是隱藏的。

$('.cover').click(function() { $(this).hide(); });

我強烈建議使用一個模式的插件/腳本,因爲這樣做你自己需要顯著的努力,是耗時(相信我)。

+0

你真的會追加一個元素到'document'嗎?你的意思是「身體」嗎?此外,最好捕獲一個點擊「文檔」來隱藏模式,並簡單地停止模式上的點擊事件傳播。 – alex

+0

改爲附加到'body'。爲什麼在文檔上捕獲事件會更好? – Jared

+0

這是一種檢測模式點擊互動之外的任何外界的傻瓜式方法。它不依賴於CSS來創建大的可點擊區域。 – alex

0

您可以使用jQuery的對話框,如果你使用modal:false使用屬性modal:true

$("#fileuploadfun").dialog({ modal: true }); 

那麼你就可以在後臺點擊