gpt4 book ai didi

javascript - 如何忽略除一系列快速 Javascript 事件中的最后一个事件之外的所有事件?

转载 作者:行者123 更新时间:2023-11-29 17:18:00 26 4
gpt4 key购买 nike

由于“changeCursor”事件(我使用的是 ACE 编辑器),我的一个脚本在某个时候调用了一个函数。当我多次按下它时,这会减慢光标的移动速度。

我真的很想调用这个函数,但如果只在我的光标停止移动时调用它也没关系(即我不需要看到中间状态)。

是否有一种标准方法可以忽略除最后一个事件之外的所有事件?

最佳答案

经典的方法是使用短超时:

var cursorTimer;
function changeCursor() {
clearTimeout(cursorTimer);
cursorTimer = setTimeout(function() {
// process the actual cursor change here
}, 500);

}

您的常规代码可以在每次更改时继续调用 changeCursor()(就像现在一样),但 setTimeout() 中的实际代码只会执行当在最后 500 毫秒内没有发生光标更改事件时。您可以根据需要调整该时间值。

知道事件已经停止的唯一方法是等待一小段时间并且没有检测到进一步的移动(这就是它所做的)。滚动事件通常使用类似的逻辑。

关于javascript - 如何忽略除一系列快速 Javascript 事件中的最后一个事件之外的所有事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15466000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com