Javascript 500 毫秒后执行功能,但 return 按键
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)
})
})
我相信您希望在按下按键后 运行 有一些代码,但如果按下另一个键则不需要。在这种情况下,将函数存储在变量中并在按键时将其清除。
jQuery(function($) {
var timed;
$('.class').keyup(function(Key) {
timed = setTimeout(function() {
//code
}, 500);
});
$(window).keydown(function() {
clearTimeout(timed);
});
});
您需要将超时标识符存储在某处,如果在下一个 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">
我想在 500 毫秒后执行一个 javascript 函数,但不是在按下某个键时,像这样:
jQuery(function($) {
$('.class').keyup(function(Key) {
setTimeout(function(){
// excecute this not when any key is pressed
},500)
})
})
我相信您希望在按下按键后 运行 有一些代码,但如果按下另一个键则不需要。在这种情况下,将函数存储在变量中并在按键时将其清除。
jQuery(function($) {
var timed;
$('.class').keyup(function(Key) {
timed = setTimeout(function() {
//code
}, 500);
});
$(window).keydown(function() {
clearTimeout(timed);
});
});
您需要将超时标识符存储在某处,如果在下一个 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">