我遇到了jquery加载函数的竞争条件。看起来如果页面加载时间比动画要长,我会看到一个空白对话框。如果它在动画完成之前加载,一切都很好。为什么在DOM正确更新之前发生加载回调?
$(function() {
$("#diagBox").load($(this).attr('href'), function() {
$dialog.imagesLoaded(function() {
$dialog.dialog("option", 'show', {
effect: "puff",
duration: 200,
complete: function() {
positionElements();
}
});
$dialog.dialog('open');
$dialog.dialog("option", "position", "center");
});
});
});
imagesLoaded来自desandro
positionElements根据其内容更新对话框的大小并更新jScrollPane,当#diagBox
的高度为0时,jScrollPane初始化时页面为空白。