当前位置: 首页 > 面试题库 >

延迟jQuery中按键之间的动作

刘昌翰
2023-03-14
问题内容

如何在jQuery中的按键之间延迟动作。例如;

我有这样的东西

 if($(this).val().length > 1){
   $.post("stuff.php", {nStr: "" + $(this).val() + ""}, function(data){
    if(data.length > 0) {
      $('#suggestions').show();
      $('#autoSuggestionsList').html(data);
    }else{
      $('#suggestions').hide();
    }
 });
}

如果用户连续输入,我想防止发布数据。那么我该如何延迟0.5秒呢?


问题答案:

您可以使用jQuery的数据功能来执行此操作,如下所示:

$('#mySearch').keyup(function() {
  clearTimeout($.data(this, 'timer'));
  var wait = setTimeout(search, 500);
  $(this).data('timer', wait);
});

function search() {
  $.post("stuff.php", {nStr: "" + $('#mySearch').val() + ""}, function(data){
    if(data.length > 0) {
      $('#suggestions').show();
      $('#autoSuggestionsList').html(data);
    }else{
      $('#suggestions').hide();
    }
  });
}

这里的主要优点是到处都没有全局变量,并且您可以根据需要将其包装在setTimeout中的匿名函数中,只是尝试使示例尽可能简洁。



 类似资料:
  • 我一直在寻找能在按键之间有一点延迟的方法。我一直在制作这个程序,它使用JIntellitype库读取全局热键,然后启动您指定的任何一个按键序列,例如按numpad1将执行一个B C序列。我的问题是,如果我使用线程。睡眠它只是延迟X个时间,然后按所有指定的键,在任何按键之间没有任何延迟。有人对如何解决这个问题有什么建议吗?提前谢谢! 这就是我用来发送机器人类按键的东西

  • 问题内容: 在执行另一项操作之前,有没有办法可以在JavaScript中进行睡眠? 例: 问题答案: 您可以使用实现类似的效果: 这并不是真正的“sleep’”JavaScript,它只是在一定时间(以毫秒为单位)后执行传递给函数。尽管可以为JavaScript编写睡眠函数,但最好尽可能使用它,因为它不会在睡眠期间冻结所有内容。

  • 我正在使用Cassandra 2.2并使用可插拔指标将Cassandra指标发送到Graphite, > 我在组织.apache.cassandra.metrics.Column家庭中搜索过,看到在“排量”和“读数总计”中都有一个属性“计数”,这两个计数属性之间有什么区别? 我的主要目标是获得每次读/写的延迟,您如何建议我获得它? 谢谢!

  • 问题内容: 我使用以下代码为基于RotatedTranstion的ImageView创建了动画: 这将产生以下动画: 轮换行动 就像您在动画gif中注意到的那样,动画不是连续的,即在动画周期之间存在很小的延迟(暂停)。 我试图看一下API,但无法弄清楚是什么原因造成了这种延迟以及如何摆脱这种延迟。 问题答案: 每个周期之间的明显停顿是由内插器引起的,默认情况下会使用该插值器(因此它在每个周期的末尾

  • 这里我尝试用一个摇摆计时器,并不断冻结gui,我做错了什么?。

  • 每当在服务器上删除时,我还想从中删除一个适当的实体。为此,我可以使用并且每当数据库中不再存在父时,也会被删除。听起来不错。 每当我使用更新数据库中的福利时,就会出现问题实际上执行和操作,但是会在内部触发的,因此,该表中的所有数据也会被删除。 (类似的问题出现在和表格上。) 我正在寻找一种在事务结束前暂时禁用外键约束的方法。也就是说,不要在事务期间验证外键,而只在事务结束时验证外键。我仍然希望房间自