在后台暂停事件侦听器

时间:2016-09-25 07:59:22

标签: javascript css prompt

我有一个事件监听器

document.onkeyup = function (event) {
};

但我正在打开一个模态窗口(只是一个简单的div position: absolute; width: 100%; height: 100%; left: 0; top: 0}。

问题在于,当我在这个模态中键入一个表单时,键事件监听器仍然在后台监听,所以当再次隐藏模态窗口时,由于以下内容对页面进行了很多更改关键事件监听器。

当模态窗口打开时,如何在后台暂停事件监听器?我希望模态窗口的行为类似于prompt(),这使得页面上的其他所有内容都等待它完成。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式临时分离事件处理程序:

document._onkeyupHolder = document.onkeyup;
document.onkeyup = null;

当您完成模态窗口后,将其附加回来:

document.onkeyup = document._onkeyupHolder; 
document._onkeyupHolder = null;

当然,要完全模拟提示,您也必须对其他事件也这样做。