1

私のページでは、バージョン 1.8.1 の jQuery プラグインを使用しました。以下のコードに従って動的スクリプトを作成する関数を 1 つ作成し、HTML ページの BODY 内に配置しました。

<script> $(document).ready(function(){ // .... Some javascript }); </script>

上記の動的スクリプトは、AJAX を使用して追加の HTML と JQuery を取得し、それを Body タグに追加しますが、Ajax の完了後は実行されません。以下のような単純なアラート(「何か」)を追加すると、実行されます。

<script> alert('something'); $(document).ready(function(){ // .... Some javascript }); </script>

アラート()ボックスなしでdocument.read()で動的スクリプトを実行したい問題を教えてください..

4

2 に答える 2

1

これは、ドキュメント準備完了イベントがすでに発生しているためです。あなたのページはすでに完全に読み込まれているためです。これを別の方法で解決する必要があります。

于 2013-04-22T17:23:55.873 に答える
1

AJAX がいつ完了し、ドキュメントの準備ができたかを知るために、次のようなものを使用できます。

var docReady = new $.Deferred();
var ajaxDone = $.ajax({
    url: "whatever",
    type: "GET",
    blah blah blah
});

$(document).ready(function () {
    docReady.resolve();
});

$.when(ajaxDone, docReady).done(function () {
    // Document is ready and AJAX request is successful
});

AJAX リクエストが (何らかの理由で) 失敗した場合、$.when().doneコールバックは実行されません。両方の遅延オブジェクトが正常に完了する必要があります。AJAX が成功するかどうか気にしない場合は、 を に変更.done.thenます。

于 2013-04-22T17:27:18.533 に答える