AJAX を使用して jQuery ダイアログを開こうとしています。ダイアログのコンテンツはクエリ文字列から読み込まれ、フォーム タグ内にサーバー コントロールが含まれます。
各行のリンクがダイアログを生成する GridView があります。
初めて、ダイアログは正常に読み込まれますが、その後、ページで別のダイアログを開く必要があり、最初のダイアログが読み込まれます。その後、同じダイアログを開くことができません。Firebug で DOM を調べると、ページの最後に複数の「コンテナ」が表示されます。1 つの列にリンクと空の div が含まれる GridView があります。コントロール ID は ASP.NET によって壊れているため簡略化しましたが、これが私のコードです。
$('#linkId').click(function() {
$('#panelId').dialog({
autoOpen: true,
height: 600,
width: 680,
modal: true,
show: 'blind',
hide: 'blind',
title: 'More Information',
open: function () {
$(this).load(url).parent().appendTo("form");
},
close(){
// I've also tried using these (not both at the same time)
$(this).dialog('destroy').remove();// dialog never opens again
$(this).dialog('disable').remove();// dialog never opens again
}
});
return false;
});
});
含まれている関数を close イベントに追加しようとしましたが、同じ効果が得られます。それ以外の場合、ダイアログが最終的に開くと、すべてが完全に機能します (ページの最後に複数のダイアログ コンテナーがあるにもかかわらず)。