我有一个事件监听器
document.onkeyup = function (event) {
};
但我正在打开一个模态窗口(只是一个简单的 div
和 position: 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/