我有一个事件监听器
document.onkeyup = function (event) {
};
但我正在打开一个模态窗口(只是一个简单的div
position: absolute; width: 100%; height: 100%; left: 0; top: 0
}。
问题在于,当我在这个模态中键入一个表单时,键事件监听器仍然在后台监听,所以当再次隐藏模态窗口时,由于以下内容对页面进行了很多更改关键事件监听器。
当模态窗口打开时,如何在后台暂停事件监听器?我希望模态窗口的行为类似于prompt()
,这使得页面上的其他所有内容都等待它完成。
答案 0 :(得分:0)
您可以通过以下方式临时分离事件处理程序:
document._onkeyupHolder = document.onkeyup;
document.onkeyup = null;
当您完成模态窗口后,将其附加回来:
document.onkeyup = document._onkeyupHolder;
document._onkeyupHolder = null;
当然,要完全模拟提示,您也必须对其他事件也这样做。