Javascript 在 500 毫秒后执行函数,但在按键时返回

标签 javascript jquery return settimeout

我想在 500 毫秒后执行一个 javascript 函数,但不是在按下某个键时执行,如下所示:

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

最佳答案

您需要将超时标识符存储在某处,如果在下一个 keyup 事件期间还没有超过 500 毫秒,则将其清除。将这个id保存在相关input的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">

关于Javascript 在 500 毫秒后执行函数,但在按键时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684919/

相关文章:

javascript - 如果模态附加到同一范围,如何从函数中关闭 $uibModal?

jquery - 如何将用户 ID 传递到 django ajax post 中?

javascript - 根据单选按钮选择更改可选下拉选项的 JQuery 代码

javascript - 类别/标签选择器

c - 返回多维数组的函数

javascript - 如何使用 firefox 插件 sdk 创建一个选项弹出对话框?

javascript - 如何在javascript中仅保留用户输入的数字

javascript - 为什么 Number ('' ) 返回 0 而 parseInt ('' ) 返回 NaN

python - 在 python 中导入模块时是否有类似于 `return` 的情况?

Java:从方法返回的最佳实践(通过 if 语句)