jQuery UIのdialogを使い捨てで使う場合
今日初めて使った。
$('<div />').dialog({
close: function(event) {
$(this).dialog('destroy');
$(event.target).remove();
});
ダイアログ表示させる時、その要素がDOMツリーに入ってないとちゃんと
bodyの最後に追加してからdialogとして表示してくれる。
だがそのままではダイアログを閉じてもDOMツリーに追加されたままなので
閉じた際に削除する必要がある。
closeイベント時に「
$(this).dialog('destroy');
」を飛び出せばダイアログは消えるがダイアログ内に表示させた要素はbodyの最後に残ったままだ。
なのでダイアログとその中身を消すためには上のように
「
$(event.target).remove();
」などとしてダイアログの中身も消す必要がある。何も考えず使い捨て感覚で使ってたらidとかかぶってイベントがおかしくなった。