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

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2022-01-10
  • 2022-12-23
  • 2021-11-29
  • 2021-12-20
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2022-02-15
  • 2022-02-14
  • 2021-06-29
  • 2022-01-03
  • 2022-12-23
  • 2021-06-25
相关资源
相似解决方案