为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
更新时间:2009年11月24日 21:32:10 作者:
笔者在项目中使用 jquery.ui.dialog 1.7.2时,当使用$("#d").dialog("open");时,dialog总是弹出在option中指定的位置;
经过摸索进行了扩展,增加“自动记住关闭时的位置”的功能,源码如下:
//myJquery.ui.dialog.ex.js
////////////////////////////////////
//自动记住 jquery.ui.dialog关闭时的位置
///////////////////////////////////
(function($){
var originClose = $.ui.dialog.prototype.close;
$.ui.dialog.prototype.close = function()
{
//判断option中是否指定不使用此功能,如 $("#d").dialog({rememberPosition:false});
if(this.options.rememberPosition != false)
{
this.position = this.uiDialog.offset() ;
var top = $('body').scrollTop();
if(top == 0) top = $(document).scrollTop(); //修正!DOCTYPE BUG
var left = $('body').scrollLeft();
if(left == 0) left = $(document).scrollLeft(); //修正!DOCTYPE BUG
this.options.position = [this.position.left-left,this.position.top-top];
}
originClose.apply(this,arguments);
};
})(jQuery);
原理很简单,不再做特殊说明,有此需求的朋友可参考一下。
复制代码 代码如下:
//myJquery.ui.dialog.ex.js
////////////////////////////////////
//自动记住 jquery.ui.dialog关闭时的位置
///////////////////////////////////
(function($){
var originClose = $.ui.dialog.prototype.close;
$.ui.dialog.prototype.close = function()
{
//判断option中是否指定不使用此功能,如 $("#d").dialog({rememberPosition:false});
if(this.options.rememberPosition != false)
{
this.position = this.uiDialog.offset() ;
var top = $('body').scrollTop();
if(top == 0) top = $(document).scrollTop(); //修正!DOCTYPE BUG
var left = $('body').scrollLeft();
if(left == 0) left = $(document).scrollLeft(); //修正!DOCTYPE BUG
this.options.position = [this.position.left-left,this.position.top-top];
}
originClose.apply(this,arguments);
};
})(jQuery);
原理很简单,不再做特殊说明,有此需求的朋友可参考一下。
相关文章
关于jquery.validate1.9.0前台验证的使用介绍
本篇文章介绍了,关于jquery.validate1.9.0前台验证的使用。需要的朋友参考下2013-04-04
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
最近有个需求,需要在Tab中放置iFrame,于是做了一个jQuery的Tab插件。2011-06-06
jquery 图片Silhouette Fadeins渐显效果
经常漂流在css-tricks看到这篇文章,就顺便搬了过来,下面译文都是用css-tricks口吻来描述的。2010-02-02


最新评论