我有div(比如说div1),它包含两个下拉框和一个另一个div的表格(比如div2)。我已将此div1定义为jquery对话框。在更改第一个下拉列表时,将填充另一个下拉列表,并且在第二个下拉列表更改时,div2将加载一个ajax调用的html结果。
现在我使用关闭按钮关闭对话框,然后当我尝试重新打开对话框(div1)时,对话框高度缩小到下面提到的高度。如果我打开对话框而不更改第二个下拉列表,它工作正常。 只有在第二次下拉列表中出现 onchange 时,对话框才会缩小。
jQuery Dialog打开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。
答案 0 :(得分:2)
关闭时,请确保您正在销毁对话框.dialog( "destroy" )
,否则对话框及其内容将保留在DOM中。这可能会产生问题,因为ID是唯一的,并且您只能打开一个相同#id的实例。
答案 1 :(得分:2)
我发现了这个问题。在关闭div1对话框之前div2应为空,否则div2高度也会被取消并减去对话框高度,因此它会降低jQuery UI Dialog 1.8.2中的高度。
所以,jQuery对话框关闭div1:
$("#div2").html(""); $("#fileDoc").dialog("close");