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

Javascript
文档对象模型(DOM)的技巧和诀窍
Javascript在IE与firefox中表现的异同
文档对象模型(DOM)的基本方法
javaScript DOM方法与属性摘要
Javascript的一些属性讲解
JavaScript代码规范
IE和Firefox的兼容性问题
innerHTML,outerHTML,innerText,outerText
FireFox支持innerText
JavaScript Dom编程:介绍学习书籍
JavaScript教程:关于时间格式转换
JavaScript教程:判断日期正确与否的函数
解决JS脚本兼容的几个小技巧
使用createElement动态创建HTML对象
Javascript事件处理代码的三种写法
Javascript教程:展示风格的价值
Javascript在IE和FF里的兼容问题
JavaScript扩展:正则像函数一样调用
初学Ajax须注意的几个问题
学习JavaScript的事件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 255 ::
收藏到网摘: 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);

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