繁体   English   中英

500毫秒后执行Javascript执行功能,但在按键时返回

[英]Javascript excecute function after 500 ms, but return on keypress

我想在500毫秒后执行javascript函数,但是在按下键时不希望执行此操作,如下所示:

 jQuery(function($) { $('.class').keyup(function(Key) { setTimeout(function(){ // excecute this not when any key is pressed },500) }) }) 

您需要将超时标识符存储在某个地方,如果在下一个按键事件期间尚未经过500毫秒,则将其清除。 将这个id保存在相关输入的data属性中很方便:

 $('.class').keyup(function (Key) { clearTimeout($(this).data('timeout')); $(this).data('timeout', setTimeout(function () { alert('pressed'); }, 500)); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="class" placeholder="Type something"> 

我相信您希望在按下某个键后运行一些代码,但是如果按下另一个键则不需要。 在这种情况下,将函数存储在变量中并在按键时将其清除。

 jQuery(function($) { var timed; $('.class').keyup(function(Key) { timed = setTimeout(function() { //code }, 500); }); $(window).keydown(function() { clearTimeout(timed); }); }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM