javascript - 跳过javascript中的延迟事件
问题描述
我正在尝试跳过 JavaScript 中的延迟事件。说(如果我连续 4 次鼠标滚轮,第一个会被触发,然后是第二个、第三个和第四个。在我的场景中,如果第一个事件被触发并且当第二/第三/第四个事件延迟或缓慢时,我想要说第二个和第三个事件被触发并且必须直接触发最后一个事件(比如第四个事件))
这可能使用 JS/Jquery 吗?如果可能的话,谁能建议我一些样品!
对不起,如果我没有多大意义,我是这里的初学者。
解决方案
听起来您在描述一个去抖动功能,它将在第一个事件上触发,但在定义的时间范围内合并后续事件。
这个插件应该实现你正在寻找的东西:http: //benalman.com/projects/jquery-throttle-debounce-plugin/
这个问题和答案也可能会有所帮助。
基于此页面上的自动完成示例http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/,应触发最终(您的示例中为第 4 个)事件,但任何中间事件快速连续发生将被跳过。
这是一个 Stackblitz 示例,每 0.1 秒将鼠标滚轮事件反跳一次。您只需要包含插件,然后执行以下操作:
$(document).ready(function () {
$('body').bind('mousewheel', $.debounce(100, debounceEvent));
function debounceEvent(event) {
// Process mouse wheel event here
console.log(event);
}
});
如果您进行快速滚动,则只应发出最后一个事件。
推荐阅读
- ios - `NSMigrationManager`的默认源获取`fetchRequestForSourceEntityNamed:predicateString:`在哪里定义?
- scala - 偏斜数据的自定义分区器
- python - Python 类 __str__ 只返回一行字典
- angular - 更改 Moment 变量的小时数时,this.moment.hours() 不是函数错误
- php - 在评论中用名称替换 id 而不替换错误的大小写
- c++ - 处理自定义 Qt 小部件中的输入事件
- mybatis - SqlProvider 重载
- python - 如何在openpyxl中设置单元格语言以获得良好的数字格式?
- mongodb - 如何在 mongodb 中使用查找来匹配数组字段?
- python - python打印表格程序中{1:>2}的含义