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 事件, 只执行第一次方法.
-----------------------------------------------------------以上方法不对.---------------------------------
使用以下方法解决: