jQuery模式对话框不以位置标志为中心

时间:2013-09-19 22:50:37

标签: javascript jquery jquery-ui jquery-ui-dialog

我有一个网站 here ...

我没有创造一个小提琴,因为我不确定如何用ajax复制这个问题。

当网站加载时,有一个自动弹出窗口会引入一个ajax请求。

偏离中心,当我在那里添加位置标志时,模态根本没有出现。我没有任何语法错误,所以我不确定是什么问题。

使用此代码,弹出窗口会打开(但偏离中心)......

$(document).ready( function() {
    jQuery('#compliance').load('jquery-ajax.html').dialog();
});

当我添加位置标记时,它根本不显示...

$(document).ready( function() {
    jQuery('#compliance').load('jquery-ajax.html').dialog({
        position: {my: "center top", at:"center top", of: window },
    });
});

修改 -

这是最终有效的......

    $(document).ready( function() {
        jQuery('#compliance').load('jquery-ajax.html').dialog({
        resizable: false,
        modal: true,
        width: 750,
        show: 'fade',
        hide: 'fade',
        position: {my: "center top", at:"center top", of: window }
        });
});

2 个答案:

答案 0 :(得分:1)

我相信你的问题与将ajax加载到模态框中有关。这可能会导致内容大小调整等问题。您可以尝试添加

jQuery('#compliance').load('jquery-ajax.html').dialog({
    resizable: false,
    modal: true,
    width:'auto'
});

此外,为了将来参考,您在处理元素时不必使用jQuery。您可以使用$标志。如果这不起作用,那么您可能会遇到DOM中的javascripts的加载顺序问题

答案 1 :(得分:0)

短暂的超时重新定位对话为我做了伎俩。所有其他尝试都失败了。

setTimeout(function(){
    $("#dialog-selector").dialog('option', 'position', 'center');
}, 50);