在IE浏览器中resize事件执行多次的解决方法
2013-11-27 21:01
701 查看
最后我找到了一个jquery插件形式的解决方案;
你可以把上面的代码另存为jquery.wresize.js导入网页,把以下代码拷贝到记事本中,另存为网页,然后测试一下。示例:
/* =============================================================================== WResize is the jQuery plugin for fixing the IE window resize bug ............................................................................... Copyright 2007 / Andrea Ercolino ------------------------------------------------------------------------------- LICENSE: http://www.opensource.org/licenses/mit-license.php WEBSITE: http://noteslog.com/ =============================================================================== */ ( function( $ ) { $.fn.wresize = function( f ) { version = '1.1'; wresize = {fired: false, width: 0}; function resizeOnce() { if ( $.browser.msie ) { if ( ! wresize.fired ) { wresize.fired = true; } else { var version = parseInt( $.browser.version, 10 ); wresize.fired = false; if ( version < 7 ) { return false; } else if ( version == 7 ) { //a vertical resize is fired once, an horizontal resize twice var width = $( window ).width(); if ( width != wresize.width ) { wresize.width = width; return false; } } } } return true; } function handleWResize( e ) { if ( resizeOnce() ) { return f.apply(this, [e]); } } this.each( function() { if ( this == window ) { $( this ).resize( handleWResize ); } else { $( this ).resize( f ); } } ); return this; }; } ) ( jQuery );
你可以把上面的代码另存为jquery.wresize.js导入网页,把以下代码拷贝到记事本中,另存为网页,然后测试一下。示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" style="overflow:hidden;"> <head> <title> test window resize </title> <script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"></script> <script type="text/javascript" src="jquery.wresize.js"></script> <script type="text/javascript"> jQuery( function( $ ) { function content_resize() { var w = $( window ); var H = w.height(); var W = w.width(); $( '#content' ).css( {width: W-20, height: H-20} ); } $( window ).wresize( content_resize ); content_resize(); } ); </script> </head> <body> <div id="content" style="border: 1px dashed silver; position:absolute; overflow:auto;"> test test testtest test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test </div> </body> </html>
相关文章推荐
- 在IE浏览器中resize事件执行多次的解决方法
- 在IE浏览器中resize事件执行多次的解决方法
- 解决在IE浏览器中resize事件执行多次
- IE6浏览器下resize事件被执行了多次解决方法
- IE6浏览器下resize事件被执行了多次解决方法
- 解决在IE浏览器中JQuery.resize()执行多次的方法
- 解决在IE浏览器中JQuery.resize()执行多次的方法(转)
- IE6/IE7/IE8 JQuery下resize事件执行多次的解决方法
- 解决在IE浏览器中resize事件执行多次
- input file域的value清空与赋默认值方法,及Jquery中file的change事件只能执行一次,不可多次执行的解决办法
- jquery的事件点击一次执行多次的解决方法
- Jquery on("click") 方法绑定事件后执行多次解决办法
- 事件多次执行导致失效解决方法
- Jquery on方法绑定事件后执行多次的解决方法
- 关闭页面window.location事件未执行的原因及解决方法
- Jquery on方法绑定事件后执行多次
- Jquery双击事件不触发执行单击事件解决方法
- Js先触发失去焦点事件再执行点击事件解决方法
- android-继承BaseAdapter自定义适配器,getView执行多次的解决方法