为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);
// //

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

 

转载于:https://www.cnblogs.com/erpcrm/archive/2009/11/23/1608537.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值