jQuery对话框没有显示在中心

时间:2011-05-04 19:37:28

标签: jquery dialog jquery-ui-dialog

我遇到的问题与this question中的问题相同,但现在适用于所有浏览器。

以下是代码:

$('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;
    })

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我认为您的问题是.dialog()方法在加载之前不知道内容高度。尝试在对话框定义中定义高度,或尝试此Centering jQuery UI dialog of unknown height - is it possible?

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

答案 2 :(得分:0)

删除

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

这是最后一个问题的fix,这次修正了

答案 3 :(得分:-1)

你导入/包含position.js?你的代码?

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

这对我有用