1

使用 jquery 对话框有一段时间了,但现在遇到了一个奇怪的行为。

来电:

$('#dialog-form').dialog({
    autoOpen: false,
    width: '700px',
    modal: true,
    hide: 'slide'
});

$('#dialog-form').dialog('option', 'buttons', {
'add' : {
    text: labelAdd,
    click: function() {
        doadd = true;
        if (typeof checkRow !== "undefined") { doadd = checkRow() };
        if (doadd) { exec(); }
    }}, 
'Cancelar': function() {$(this).dialog('close'); }
});
$("#dialog-form").dialog("open");

function exec() {
$('#dialog-form').dialog('close');
/* execute some remote code using ajax call*/
if (error) {
    $('#dialog-form').dialog('open');
    return false
}
return true;
}

对话框未正确显示。它显示“ui-widget-overlay”,但不显示对话框内容。

我调用该函数的两次树时间发生在我身上。

对于我可以看到的显示属性设置为无。

生成的html代码:

div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" style="display: none; z-index: 1002; outline: 0px none; position: absolute; height: auto; width: 700px; top: 0px; left: 320.5px;" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-form">

我使用firebug手动设置显示阻止,它工作正常。

顺便说一句,如果我脉冲“esc”,我可以看到隐藏对话框的动画。

我可以从js设置div内容的显示吗?或者我应该以不同的方式打开/关闭对话框?

谢谢您的帮助。

安东尼奥

4

1 回答 1

0

为什么不加

$("#dialog-form").dialog("open").show()对它..

我有一个类似的问题,这对我有用..

于 2012-09-13T23:05:38.580 回答