私はこの質問をここで何度も見てきましたが、さまざまな答えがあります。このコードは、JQuery 1.5.1 から 1.9.1 に移行したときに機能しなくなりました。
$.ajax(
{
type: 'GET',
url: MapPath($(this).attr('path')),
cache: false,
data: '{}',
dataType: 'html',
success: function (result) {
result = $.parseHTML(result);
$('#dialog').html(result);
$('#dialog').dialog('open');
}
}
});
結果には、src 属性を持つ JavaScript ファイルへのリンクが含まれます。#dialog コンテナーに追加された後、ロードされて実行されたスクリプトをアップグレードする前に。今はそうではありません。1 つの提案から、parseHTML() メソッドの後にこれを試しました。
$.getScript("/myscript.js");
それは完全に機能しますが、それは私が望むものではありません。ロード コンテナーは、ロードされたコンテナーについて何も知る必要はありません。読み込まれたコンテナにスクリプト インクルードが必要な場合は、コンテナの読み込み時にそのスクリプトを実行する必要があります。
スクリプト要素を見つけてから eval() するという提案を試みました。しかし、いったん parseHTML() すると、スクリプトはもう存在しません。parseHTML() を使用する必要がある理由については、他の質問を参照してください。
こういったことが関係しているのかもしれません。