我有一个函数,每次用户键入键时都会被触发。我想将这些事件折叠一下,以便以(例如)500 毫秒的最大速率触发事件。
有没有一种简单的方法可以在Javascript或流行的库中做到这一点?还是我应该编写自己的超时逻辑?
编写自己的代码相当容易:
$('element').on('keyup', function() {
clearTimeout($(this).data('timer')); // stops the below function if new key
// is pressed within 0.5 seconds
$(this).data('timer',
setTimeout(function() {
// do stuff
}, 500)
)
});
或者你可以使用一个插件,jQuery Throttle似乎很受欢迎。