将lodash'throttle'与mousemove事件一起使用

时间:2020-04-13 20:15:56

标签: javascript lodash

我有一个mousemove事件侦听器,目标是每100毫秒仅触发一次其内部的函数。我发现lodash throttle函数可以满足我的需求,但是我很难实现它。到目前为止,这是我的代码

<form>
  <textarea id="txt1"></textarea>
  <input type="button" value="Insert some text" onclick="insertText('txt1', 'Hello');">
</form>
document.addEventListener('mousemove', e => {
  console.log(e);
  _.throttle(test, 100);
});

function test() {
  console.log('test');
  return false;
}

和带有lodash库的jsfiddle:

http://jsfiddle.net/c56ebw9d/5/

有什么想法可以触发事件日志,但是我的测试日志不会触发吗?

1 个答案:

答案 0 :(得分:2)

_.throttle()将返回一个新的限制函数,然后需要为每个事件调用该函数。稍微调整了代码:

var throttleFn =  _.throttle(test, 1000);
document.addEventListener('mousemove', throttleFn);

function test() {
  console.log('test');
  return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>