我有一个功能,每次用户键入一个键时都会触发。我想将这些事件折叠一点,以便以(比如说)500 毫秒的最大速率触发这些事件。
有没有一种简单的方法可以在 Javascript 或流行的库中做到这一点?还是我应该编写自己的超时逻辑?
我有一个功能,每次用户键入一个键时都会触发。我想将这些事件折叠一点,以便以(比如说)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似乎很流行。