2011-05-04 115 views
0

我遇到的问题与this question中的相同,但现在适用于所有浏览器。未在中心显示jQuery对话框

下面是代码:

$('form#main').live('submit', function(e) { 
     e.preventDefault(); 
     var $this = this; 
     ////console.log('click submit') 
     var $div = $('<div>', { 
      html: 'Are you sure you want to submit this table?<br/> All undo information will be lost.' 
     }).dialog({ 
      modal: true, 
      title: 'Are You Sure?', 
      buttons: { 
       ok: function() { 
        self.console('clicked ok'); 
        $.post($this.action, $($this).serialize() + '&page=' + self.pageOn, function(data) { 
         self.console(data); 
         $('.DEV-time').text(" (File last updated at: " + data.DEV + ")"); 
         $('.PROD-time').text(" (File last updated at: " + data.PROD + ")"); 
         if(data.ERROR.length > 0){ 
          alert(data.ERROR); 
         } 
         self.pageChanged = false; 
         self.origPage = $('#page').clone(); 
         self.lastClick = $('#page').clone(); 
        }, 'json') 
        $(this).dialog('close'); 
       }, 
       cancel: function() { 
        $(this).dialog('close'); 
       } 
      }, 
      beforeClose: function() { 
       $(this).remove(); 
      } 
     }) 

     $div.dialog('widget').css('margin', '0 auto'); 

     return false; 
    }) 

回答

0

拆卸的:

$div.dialog('widget').css('margin', '0 auto'); 

这是fix最后一个问题,修好了这个时候

+0

这很刺激。 – Brandon 2011-05-04 20:05:16

+0

但它没有意义 – Neal 2011-05-04 20:05:49

+0

顺便说一句,你有一个失踪;当关闭对话框定义时,就在刚删除的那一行之前。 – eagerMoose 2011-05-04 20:07:50

0

我觉得你的问题是,.dialog()方法不知道内容高度加载之前。要么尝试在对话框定义中定义高度,要么试试这个Centering jQuery UI dialog of unknown height - is it possible?

编辑:对不起,我没有看到它是关于居中水平。如果是这样,您可能需要明确设置对话框的宽度,或者在链接中使用与上面相同的技巧。

+0

现在我注意到,它是在IE浏览器为中心,而不是在FF和铬,它是已知的高度... – Neal 2011-05-04 19:59:35

+0

你能创造的jsfiddle例子,并张贴这里? – eagerMoose 2011-05-04 20:03:35

1

除了'margin',你需要给它一个明确的css宽度。

+0

nope,这使情况变得更糟 – Neal 2011-05-04 20:01:19

-1

有导入/包括position.js?在你的代码?

<script src="jquery.ui.position.js"></script> 

这是为我工作