当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能

Javascript
javascript之循环停顿上下滚动
textarea保留换行的注意事项
不错的一篇关于javascript-prototype继承
非常不错的三种简洁的Tab导航(网页选项卡)简析
一个用js实现控制台控件的代码
【消息提示组件】,兼容IE6/7&&FF2
一个符号插入器 中用到的js代码
js中的escape及unescape函数的php实现代码
用javascript实现画板的代码
比较实用的复选框的实用javascript脚本
js下获得单选框的值的代码
IE不出现Flash激活框的小发现的js实现方法
超强的IE背景图片闪烁(抖动)的解决办法
“不能执行已释放的Script代码”错误的原因及解决办法
javascript下过滤数组重复值的代码
javascript在firefox下设为首页的代码
一直都需要的复制到系统剪贴板之IE,firefox兼容版
js类中获取外部函数名的方法与代码
JS类定义原型方法的两种实现的区别评论很多
一实用的实现table排序的Javascript类库

Javascript 中的 为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 420 ::
收藏到网摘: n/a

笔者在项目中使用 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);

原理很简单,不再做特殊说明,有此需求的朋友可参考一下。