我有一个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/
有什么想法可以触发事件日志,但是我的测试日志不会触发吗?
答案 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>