ファイルAにJavaScriptがあり、ファイルBを(jquery AJAXロードを介して)要素Xにロードします。成功すると、ファイルAはresizewin(以下)を呼び出し、resizeContent関数が存在するかどうかを確認します(これはBにありました)、存在する場合はそれを実行します. 次に、ファイル A は DOM 要素 X を削除します。
function resizewin() {
if (typeof(resizeContent) === 'function') resizeContent();
}
クロムでは、分離された DOM ツリー要素が表示されます (X 要素を .remove() した後)。原因を突き止めようとしています。上記が原因でしょうか?つまり、要素に関数が存在するかどうかを確認してからその関数を呼び出すと、要素 X が DOM から削除された後でも、ブラウザーのガベージ コレクションによって要素 X が削除されなくなりますか?
もしそうなら、これを行う正しい方法は何ですか?
編集: 要求に応じてさらにコードを追加します。B を (ファイル A から) DOM にロードする方法は次のとおりです。
$.ajax({
type: 'POST',
contenttype: "application/html",
dataType: 'html',
url: url,
data: dataarr,
success: function(response) { $('#'+element).html(response); }
});
そしてファイルBで私の関数:
function resizeContent() {
console.log("In resizeContent");
}