jQuery の document.ready トリガー関数に問題があります。これが jQuery によるものなのか、ブラウザーの動作によるものなのかはわかりませんが、次のようになります。 document.ready() イベントは、外部スクリプト/css ファイルがロードされる前にトリガーされます。これは、同じドメインにある script/css ファイルには適用されません。同じドメインにある場合、document.ready トリガーはそれらが読み込まれるのを待ちます。
エラーを示すコードのサンプルを次に示します。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
var html = '<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" type="text/javascript"><' + '/script>'
+ '<script type="text/javascript">$(document).ready(function() {alert(typeof jQuery.ui);})</' + 'script>';
$('body').append(html);
});
</script>
</body>
</html>
「オブジェクト」でアラートを受け取る代わりに、「未定義」でアラートを受け取ります。
ありがとうございます。
編集: 他の誰かが同様の問題を経験し、最初に外部スクリプトをロードしてから HTML/プレーン JS をロードするソリューションを使用しました。リンクはhttp://snipplr.com/view/43449/load-external-scripts-first-for-injected-dom-html-content/です。とにかく、このソリューションには満足できません。コードにいくつかの変更が加えられることを意味し、すべてのブラウザーで 100% 信頼できるかどうかはわかりません。