我有一個事件偵聽器暫停事件偵聽器在後臺
document.onkeyup = function (event) {
};
但我打開一個模式窗口(只是一個簡單的div
與position: absolute; width: 100%; height: 100%; left: 0; top: 0
)。
問題是,當我在這種模式下輸入窗體時,關鍵事件偵聽器仍然在後臺偵聽,所以當模式窗口再次隱藏時,頁面發生了很多變化,因爲關鍵事件監聽器。
如何在模態窗口打開時在後臺暫停事件偵聽器?我希望模態窗口的行爲像prompt()
這使得頁面上的所有內容都等待它完成。
document._onkeyupHolder = document.onkeyup;
document.onkeyup = null;
,當你與模態窗口中完成,附上回:
您不能暫停事件偵聽器。你可以做的是在打開模式時設置一個標誌變量,並在偵聽器中檢查標誌是否設置。然後在關閉模式時重置標誌。您也可以在打開模式時分離事件,並在關閉時重新附加。第三種選擇是設置模式的鍵控監聽器,並防止事件的傳播。 – Teemu
偉大的建議!謝謝 – Jamgreen