带延迟的jQuery keyup

时间:2018-02-05 09:59:04

标签: javascript jquery html

我希望您在函数keyup()之后显示警告消息。 为此,我使用以下代码:

$('#myInputingNumber').keyup(function() {
  alert ("Key Up")
})

这很好用,每个键盘调用后都会显示警告信息。 但这并不是很好。

有没有办法检查,如果用户有2秒长没有" keyup"并仅显示警报消息?

3 个答案:

答案 0 :(得分:3)

 let delay = (()=>{
      let timer = 0;
      return function(callback, ms){
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
      };
    })();

    window.document.getElementById("myInputingNumber").addEventListener("keyup",function() {
        delay(function(){
          alert('Key Up');
        }, 2000 );
    });
<input type="text" id="myInputingNumber">

答案 1 :(得分:0)

您描述的内容称为 debouncer 。你可以在那里找到很多实现,如果你需要一个关于如何使用它们的例子,请给我发表评论。

答案 2 :(得分:0)

你也可以尝试这个。

var flag = false;
$(function(){
  $("#demoKeyup")
  .keydown(function(){
    flag = true;
    setTimeout(function(){
      if (flag == true) {
        alert("still key down");
        flag = false;
      }
    },2000);
  })
  .keyup(function(){
    flag = false;
  })

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input type="text" id="demoKeyup">