javascript - 在后台暂停事件监听器

标签 javascript css prompt

我有一个事件监听器

document.onkeyup = function (event) {
};

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

问题是,当我在这个模式中输入一个表单时,关键事件监听器仍在后台监听,所以当模式窗口再次隐藏时,页面已经做了很多更改,因为关键事件监听器。

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

最佳答案

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

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

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

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

当然,要完全模拟提示,您也必须对其他事件执行相同的操作。

关于javascript - 在后台暂停事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39684633/

相关文章:

julia - 更改 julia 提示以包含评估编号

javascript - 在 native react 中以不同方式对齐两个 child

javascript - 调整浏览器屏幕大小弄乱了我的 div 的偏移量

html - 水平导航中的所有元素都在同一高度

linux - 两个 linux 命令之间有多少延迟?如果第一个运行 &

javascript - Yii 2 kartikdialog.prompt 输入类型textarea

javascript - 谷歌地图 v3 : adding a new map when function 'failure' called

java - ChromeDriver 在 Java 中禁用 Javascript

css - 无法让导航栏在页面上居中

html - 对齐在 IE10 中损坏