龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

扩展Jquery插件jquery.ui.dialog增加"自动记住关闭时的位置"的功能

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
如果你在使用jquery.ui.dialog,想为记住弹窗的位置,可以参考一下下面的做法。 项目使用 jquery.ui.dialog 1.7.2时,当使用$("#d").dialog("open");时,dialog总是弹出在option中指定的位置; 经过摸索

如果你在使用jquery.ui.dialog,想为记住弹窗的位置,可以参考一下下面的做法。
项目使用 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);

精彩图集

赞助商链接