定位对话框

时间:2011-12-15 20:26:09

标签: jquery

我正在尝试在jQuery中定位一个对话框,我有以下代码。它似乎没有做我期望它做的事情。我只需要让对话框居中或出现在我身体的左上角。

这是我的代码

    agreeDialog = $j('#termsOfAgreementConfirm').dialog({
                modal: true,
                autoOpen:false,
                resizable:false,
                width : 1000,
                height :400,
                stack:false,
                closeOnEscape:false,
                title:"Terms of Usage",
                open: function(event, ui) {

                    $j('.ui-dialog-titlebar-close').hide();

                },
                buttons: {

                    Disagree: function() {
                        disagree.dialog('open');
                        disagree.dialog('moveToTop');

                    },


                    Agree: function() {
                        $j(this).dialog('close');
                        $j.cookie("agree", "Y");
                        new Ajax.Request('/myballback/user/ajaxUpdateAgreementForUser',
                                {
                                    onSuccess:function(resp) {
                                    },
                                    onError: function(resp) {
                                        alert("Error:" + resp.toJSON());
                                        return;
                                    },
                                    asynchronous:true,
                                    evalScripts:true
                                });
                        $j(this).dialog('close');

                    }
                }
            });


var x = jQuery(agreeDialog).position().left + jQuery(agreeDialog).outerWidth();
            var y = jQuery(agreeDialog).position().top - jQuery(document).scrollTop();               //agreeDialog.dialog({width:width, height:height ,position:[posX, posY]});


            agreeDialog.dialog('option', 'position',[x, y]);

2 个答案:

答案 0 :(得分:3)

你为什么不尝试:

$( ".selector" ).dialog( "option", "position", ['left','top'] );

$( ".selector" ).dialog( "option", "position", 'center' );

答案 1 :(得分:2)

您可以使用jQuery dialog的{​​{3}}属性来实现此目的;类似的东西:

$j('#termsOfAgreementConfirm').dialog({
    ...
    position: "center",
    ....
});

来自position

  

指定对话框的显示位置。可能的值:

     

1)表示视口内位置的单个字符串:'center','left','right','top','bottom'。

     

2)一个数组,包含一个x,y坐标对,偏离左边,视口的顶角(例如[350,100])

     

3)包含x,y位置字符串值的数组(例如右上角的['right','top'])