我有一个事件侦听器暂停事件侦听器在后台
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