IE6/IE7下onresize执行多次解决方法
2013-06-12 23:30
323 查看
IE下给window对象定义其onresize事件,在拉伸缩小窗口时,其onresize方法将被执行多次,并且其具体执行的次数在不同的电脑有不同的值,相当诡异,Firefox等其他浏览器则无此现象。具体可参看这一篇文章《window.onresize hangs IE6 and IE7》
高阶函数debounce 正是为此而生的
高阶函数debounce 正是为此而生的
/** * IE下 window.onresize 有bug 可以使用debounce封装监听函数 * see http://blog.csdn.net/fudesign2008/article/details/7035537 * @author FuDesign2008@163.com * @date 2011-11-30 * @time 下午04:02:55 */ /** * * @param {Function} callback 回调函数 * @param {Integer} delay 延迟时间,单位为毫秒(ms),默认150 * @param {Object} context 上下文,即this关键字指向的对象,默认为null * @return {Function} */ function debounce(callback, delay, context){ if (typeof(callback) !== "function") { return; } delay = delay || 150; context = context || null; var timeout; var runIt = function(){ callback.apply(context); }; return (function(){ window.clearTimeout(timeout); timeout = window.setTimeout(runIt, delay); }); } var winResizeHandler = function(event){ console.log("window resized"); }; window.onresize= debounce(winResizeHandler, 300);
相关文章推荐
- IE6/IE7下onresize执行多次解决方法
- window的onresize执行多次的解决方法
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- 事件多次执行导致失效解决方法
- JQuery 给元素绑定click事件多次执行的解决方法
- 解决多次点击按钮 执行多次方法
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- input file域的value清空与赋默认值方法,及Jquery中file的change事件只能执行一次,不可多次执行的解决办法
- JQuery给元素绑定click事件多次执行的解决方法
- 解决在IE浏览器中JQuery.resize()执行多次的方法
- 调用RadioGroup的check(id)方法,监听onCheckedChanged方法被执行多次;调用clearCheck(),onCheckedChanged方法仍被执行的原因和解决办法
- IE6浏览器下resize事件被执行了多次解决方法
- jQuery 动态绑定的方法多次执行的解决 jQuery(document).on(
- jquery的事件点击一次执行多次的解决方法
- Struts2中Action的@BeforeResult方法被执行两次或多次解决办法
- JQuery 给元素绑定click事件多次执行的解决方法
- 在IE浏览器中resize事件执行多次的解决方法
- 解决Button多次点击重复执行方法的问题
- Struts2中Action的@BeforeResult方法被执行两次或多次解决办法