这是我长期忍受的烦恼,最后决定寻求答案。我在我的网络应用程序中显示模态jQuery对话框,但显示它的动画不按正确的顺序发生。我正在为页面上的链接设置一个单击事件(使用jQuery),当用户单击它时,它会创建一个新的Dialog,并将autoOpen设置为true。从对话框中取消会破坏它,以便用户可以在下次点击时再次打开它。
无论我使用什么动画(目前使用“盲”),似乎整个页面首先变暗,然后打开对话框(仍然变暗),一旦对话框完全打开,它就会将其展开。只是没有以正确的顺序发生。有没有其他人看过这个,或者知道为什么会发生这种情况?我用来创建对话框的代码如下:
function setDialogWindows($dialogDiv, $leftList, $rightList, leftArray, rightArray, $htmlItemList) {
$dialogDiv.dialog({
autoOpen: true,
modal: true,
show: 'blind',
hide: 'blind',
width: 600,
resizable: false,
buttons: {
Cancel: function() {
resetDialog($leftList, $rightList);
$(this).dialog('destroy');
},
'Save': function() {
if (saveDialog($leftList, $rightList, leftArray, rightArray, $htmlItemList)) {
showHideItemList("show");
}
else
showHideItemList("hide");
$(this).dialog('destroy');
}
}
});
}
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
我能够在IE和FireFox中正确显示,页面变暗,对话框动画正确完成(非暗淡)。你有任何其他jQuery脚本在<div>
标签上运行吗?
编辑:我刚刚能够重新创建此问题。这似乎与初始显示对话框结合动画有关。在您的情况下,因为您不断创建/销毁对话框,所以每次都会出现。以下是您可能想要尝试的内容:
function setupDialog($dialogDiv) {
// set autoOpen: false
// within Cancel and Save use .dialog('close')
}
// Define the dialog boxes:
setupDialog($('#dialog1'));
setupDialog($('#dialog2'));
setupDialog($('#dialog3'));
// Show the dialog on button clicks:
$('#button1').click(function() {
$('#dialog1').dialog('open');
});
$('#button2').click(function() {
$('#dialog2').dialog('open');
});
$('#button3').click(function() {
$('#dialog3').dialog('open');
});