尝试在JQuery UI模式对话框中更新文本,直到最后才显示

时间:2011-03-25 20:46:56

标签: jquery dialog modal-dialog

我要做的是使用模式对话框模拟状态对话框,处理多个长寿命操作,并在每个操作后使用状态信息更新对话框文本。我目前得到的是对话框直到最后显示并且所有消息都在那里,而不是在开始时获得对话框,并在每次操作完成后更新状态。

function TestModalUpdate() {
    $("#dialog").dialog({
        bgiframe: true,
        height: 140,
        modal: true
    });
    var i
    for(i = 0; i < 5; i++) {
        doSomething();
    }
}
function doSomething() {
    wait(1000);
    $('#dialog').html($('#dialog').html()+"<p>new line</p>")
}
function wait(msecs) {
    var start = new Date().getTime();
    var cur = start
    while(cur - start < msecs) {
        cur = new Date().getTime();
    }
} 

<input type="button" id="Test" onclick="TestModalUpdate();" value="test"/>
<div id="dialog" title="Basic modal dialog">
</div>

1 个答案:

答案 0 :(得分:0)

尝试使用open回调并从该回调函数执行所有工作。这样,在您开始其他处理之前,对话框已经打开。

$("#dialog").dialog({
        bgiframe: true,
        height: 140,
        modal: true,
        open: function(event, ui) {
            doSomething();
        }
});