3

我有 div(比如 div1),其中包含两个下拉框和一个包含另一个 div(比如 div2)的表单。我已将此 div1 定义为 jquery 对话框。在第一个下拉列表更改时,将填充另一个下拉列表,在第二个下拉列表更改时,div2 将加载 ajax 调用的 html 结果。

现在我使用关闭按钮关闭对话框,然后当我尝试重新打开对话框(div1)时,对话框高度缩小到提到的高度以下。如果我打开对话框而不更改第二个下拉菜单,它工作正常。只有当onchange 发生在 2nd dropdown时,对话框才会缩小。

jQuery 对话框打开 div1:

    $("#fileDoc").dialog({
    bgiframe: true,     
        autoOpen: false,
        height: 680,
        width: 800,
        modal: true,
        resizable: false
});

jQuery 对话框关闭 div1:

$('#fileDoc').dialog('close');

jQuery ajax 调用在 div2 中加载 html:

$("#doc").html(data);

我正在使用 jQuery 1.4.4 和 UI 1.8.2。

4

2 回答 2

2

关闭时,请确保您正在销毁对话框.dialog( "destroy" ),否则对话框及其内容将隐藏在 DOM 中。这可能会产生问题,因为 ID 是唯一的,并且您只能打开相同 #id 的一个实例。

于 2011-03-22T06:58:07.760 回答
2

我发现了问题。div2 在关闭 div1 对话框之前应该为空,否则 div2 的高度也会被对话框高度减去,因此它会降低 jQuery UI Dialog 1.8.2 中的高度。

所以,jQuery 对话框关闭 div1:

$("#div2").html(""); $("#fileDoc").dialog("close");
于 2011-03-22T09:33:51.103 回答