【问题标题】:Suspend javascript keydown event暂停 javascript keydown 事件
【发布时间】:2012-08-05 13:27:56
【问题描述】:

是否可以在 javascript 中暂停 keydown(以及随后的 keypress、keyup)事件?

案例是:

按下某个按钮(例如,“Enter”键),休眠 5 秒,然后 继续这个活动

【问题讨论】:

  • “继续这个活动”是什么意思?
  • 你到底想做什么
  • 我希望该事件仅在超时(5 秒等)后才会发生
  • 如果在此时间间隔内按了几次“Enter”会怎样。您希望所有这些事件稍后“发生”吗?你到底想用这个实现什么?
  • 您不能这样暂停活动。我需要更多细节来提供示例,但您可以例如捕获一个事件,延迟 5 秒并再次触发它。或者我猜你更有可能只是想推迟事件调用yes的方法?

标签: javascript html javascript-events


【解决方案1】:

如果计时器正在运行,下面的纯 JS 解决方案将防止触发多个事件。

这是demo

document.onkeydown = (function() {
    var isActive = false;

    return function(e) {
        if (e.keyCode === 13 && !isActive) {
            isActive = true;
            setTimeout(function() {
                isActive = false;

                // Your code here...

            }, 5000);
        }
    };

})();

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2022-09-27
    • 2013-08-20
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多