0

ファイルに次のものがあります。

<script type="text/javascript">

function refreshGridSetup() {

    $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });

</script>

その後、私は持っています:

<script src="/Scripts/admin/jquery.dataTables.js"></script>

最初のコードは dataTables を拡張するプロトタイプであるというのは正しいですか?

これを dataTables を定義するコードの前に置いてもよろしいでしょうか?

4

3 に答える 3

3

いいえ、$.fn.dataTableExt.oStdClassesまだ存在しないためです。jQuery プロトタイプは実行されるまで拡張されないため、最初に dataTables スクリプトを含める必要があります。

dataTables が名前空間を作成する前にコードを実行すると、次のようなエラーが発生します。

キャッチされていない TypeError: 未定義のプロパティ 'oStdClasses' を読み取ることができません

編集:申し訳ありませんが、refreshGridSetup機能に気づきませんでした(閉じ中括弧が欠落しているのは、質問の単なるタイプミスだと思いますか?)。dataTables が含まれるまでその関数を呼び出さない場合問題は発生しません。

于 2012-09-27T13:09:20.183 に答える
1
 $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });

上記のコードは、呼び出し時に実行されるrefreshGridSetupため、コードは問題ありません。refreshGridSetupただし、必要なすべてのリソースがロードされたら呼び出す必要があります。

しかし、関数 refreshGridSetup の本体を閉じるのを忘れていました。あなたのコードは

<script type="text/javascript">

function refreshGridSetup() {

    $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });
}// missing
</script>
于 2012-09-27T13:18:01.990 に答える
1

上記の状況では、ページの読み込み時に定義された関数が呼び出されないため、問題ではありません。何らかのイベントで呼び出すときに、プロトタイプまたは関数をロードする必要があります。

于 2012-09-27T13:09:12.037 に答える