Green 发表于 2021-7-22 18:55:35

Js 事件多次被触发的解决方案.

Js 中的有些事件: 如 onscroll , onresize , 会被多次触发,而且,不同浏览器之前触发次数可能不一致. 这个问题很烦人.
决定做一个方案出来解决所有的问题.
其实关于界面上的问题,是允许一点点时间延迟的. 比如说 500 ms ,而多次触发的事件,可以忽略时间差的. 这是基础.
先上代码var lastTimer;
$(window).scroll(function (e) {
if (lastTimer) lastTimer.stop();
lastTimer = $.timer(500, function (timer) {
timer.stop();
ExecJsUIEvent(e);
});

});代码很简单,原理很清晰. 在 500ms 之内产生的 Scroll 事件, 只执行第一次方法.

作者:NewSea如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
文档来源:51CTO技术博客https://blog.51cto.com/u_15309889/3168954
页: [1]
查看完整版本: Js 事件多次被触发的解决方案.