0

何かが移動された後、jquery の .load 関数を使用してテーブル内のすべてのデータをリロードするテーブルがあります。

問題は、テーブルが読み込まれると、ページ上の外部 JavaScript ファイルがテーブルで使用されなくなることです。

この問題を自分で解決するために、jquery の .getScript の使用を開始しました。これは(時々)機能しますが、うまく機能しません。テーブルがすぐに読み込まれるのにスクリプトの読み込みに時間がかかるため、スクリプトが時々めちゃくちゃになると思います。

また、getScript の後に関数を使用してみましたが、まだ正しく機能していないようです。

これは私が現在使用しているものです

    $(function() {
        $("#sortable").sortable({
            update: function(event, ui) {
                serial = $('#sortable').sortable('serialize');
                $.ajax({
                url: "./menu-controller.php",
                type: "post",
                data: serial,
                success: function() {
                    $.getScript("./menu-admin.js");
                    $("#sortable").load("./menu-manager.php #menu-table");
            },
                error: function(){
                    alert("A problem occurred when moving this menu item. Please try again or contact support.");
                }
                });
            },
        handle:'.move-item',
        connectWith:'#menu-table',
        placeholder: "highlight",
        containment: "parent",
        revert: true,
        tolerance: "pointer",
        items: 'tbody > *'
        });
    });

具体的には、.sortable の更新の「成功」に注目しています。これに対するより良い解決策はありますか?

私の最終的な目標は、テーブルの読み込みが始まる前にスクリプトを完全に読み込むことです。繰り返しますが、私はすでに getScript の機能を使用しようとしましたが、これは機能していないようです。

提供されたアドバイス、ヒント、または解決策に感謝します。

4

1 に答える 1

1

そのようなコールバックでのみget()を使用してみてください:

$.get('http://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core.js', function(response){
  // Start table
});
于 2013-10-28T06:04:08.883 に答える