警报窗口,如果没有keydown秒数?

时间:2011-08-25 05:23:57

标签: javascript jquery

我需要知道10秒钟内是否有没有键盘或点击,如果有,则显示警告窗口,如果它比简单的js更有效,我可以使用jquery。

我该怎么办?感谢

3 个答案:

答案 0 :(得分:5)

这样的事情:

(function(){

    var timer;
    function resetTimer(){
        clearTimeout(timer);
        timer = setTimeout(function(){
            alert('No keydown for 10 seconds');   
            // Call reset timer here if you want the timer to start again
            // when the alert is closed

            // Otherwise, if you want to stop the timer forever,
            // remove the event handler from document.onkeydown
        }, 10000);
    }
    resetTimer();

    document.onkeydown = resetTimer;

})();

JSFiddle

它假设您没有将任何其他内容绑定到文件keydown侦听器。如果您有,那么您应该使用addEventListenerattachEvent代替。

答案 1 :(得分:2)

var seconds = 0;

window.setInterval(function() {
  seconds++;
  if(seconds == 10) {
    alert("No keydown or click in 10 seconds");
  }
}, 1000);

$('body').live('click keydown', function(e) {
  e.preventDefault();
  seconds = 0;
});

必须有jQuery。

答案 2 :(得分:0)

  • 设置变量以跟踪键/点击是否发生,例如var action_happened = false;
  • 设置10秒计时器(10000毫秒setTimer)。
  • 在计时器的回调中,如果!action_happened则显示警告。
  • 设置全局点击/按键事件处理程序。他们的回调只会action_happened = true;
  • 如果您真的想提高效率,请在设置action_happened = true;后删除点击/按键处理程序。这是可选的,如果没有这一步,它就会非常有效。