0

擬似コードで申し訳ありませんが、元のコードをここに投稿することはできません (会社のポリシー)。

私はjavascriptに2つの「クラス」を持っています。クラスCLS2は、サーバーから来るHTMLをDIVに入力するために使用します(実際にはテーブルです)。これには、jquery でメソッド LOAD を使用しています。

クラスCLS1はCLS2を呼び出してHTMLテーブルをロードし、jqueryメソッドFINDでテーブルからいくつかの情報を取得しようとした後.

私は何が起こっているのか知っています。テーブル内でこれらの情報を取得しようとすると、HTML テーブルがまだ準備されていないため、これを行うことができません。

しかし、jquery メソッド WHEN を使用している場合、私はこれを行うことができるはずだと推測しました。しかし、これまでのところ機能していません。

jquery LOAD メソッドでコールバックを使用するとすべて正常に動作しますが、WHEN を使用している場合、HTML テーブルの準備が整うのを待っていません。

私は何かを忘れていますか?

jquery LOAD メソッドから戻りました。コンテンツの準備ができているかどうか、この返品を確認することはできますか? console.log(retParam);

CLS2:

var cls2 = (function ($) {

    return { 

        load: function() {

            return this.populateDiv();

        },


        populateDiv: function() {

            var ret = $('#content').load('url', function(){

                // IF I USE THE JQUERY METHOD FIND HERE WORKS FINE

            });

            return ret;

        }

    };

}(jQuery));

CLS1:

var cls1 = (function ($) {

    return { 

        init: function(){

            this.config();

        },

        config: function() {

            $.when(cls2.load()).then(this.doPagination());

        },


        doPagination: function(retParam) {

            console.log(retParam);

            var val = $('#datatable').find('.tdActive').val();

        }

    };

}(jQuery));

JQUERY対応

$(document).ready(){

    cls1.init();

}
4

1 に答える 1

2

load returns jQuery、約束ではありません。.get() は、.when で実行できる promise (実際には jqXhr) を返すため、代わりに置き換える.load()と。.get()

何かのようなもの

var ret = $.get( "url", function( data ) {
  $( '#content' ).html( data );
});

return ret;
于 2013-10-03T20:32:00.747 に答える