1
var x = $("<div ></div>");
$('body').append(x);
x.load('page.html'
    , function() {
        $(document).ready(
            function (){
            //useful stuff here;
            }
        );  
    });

page.html が完全にロードされ、「div」内のすべてのスクリプトが既に実行された後に、ready コールバック関数が実行されることを期待しています。
この例は機能します。
私の質問は、これは私が期待していることを行う正しい方法ですか? 他に方法はありますか?この場合、ready イベントの背後にあるロジックは何ですか? 「ドキュメント」、「これ」、または「x」に適用する必要がありますか?

4

2 に答える 2

1

ダミー.html

<SCRIPT>
    $(document).ready(
        function(){
            var x = $("<div >hola</div>");
            $('body').append(x);
            x.load('dummy2.html', function() {

                console.log('dummy callback');

                $(document).ready(
                    function (){
                    console.log('dummy has loaded after dummy2 has loaded');
                    //useful stuff here;
                    }
                );
            });
        }
    );
</SCRIPT>

ダミー2.html

 <SCRIPT>
    $(document).ready(
        function(){
            console.log('dummy 2a has load');
        }
    );
    $(document).ready(
        function(){
            console.log('dummy 2b has load');
        }
    );


</SCRIPT>

この例では、最初にダミー コールバックを出力し、2 番目にダミー 2a とダミー 2b を出力し、最後の出力は「ダミーがロードされた後にダミーがロードされました」というシーケンスの動作方法を示しています。 .

アップデート

行 $(document).ready を削除すると、シーケンスは次のようになります

1 つ目: ダミーのコールバック 2 つ目: ダミーが読み込まれました... /違います! /

于 2013-06-26T21:12:17.510 に答える