jquery の load 関数で競合状態に陥っています。アニメーションよりもページの読み込みに時間がかかる場合、空白のダイアログが表示されます。アニメーションが完了する前に読み込まれる場合は、すべて問題ありません。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 が初期化されているため、ページは空白です。