0
<script type="text/javascript" charset="utf-8">
//initialisation code
    $(document).ready(function() {
        $('#example').dataTable( {
             "sPaginationType": "full_numbers",



        } );
    } );

    var asInitVals = new Array();

    $(document).ready(function() {

        $("tfoot input").each( function (i) {
            asInitVals[i] = this.value;
        } );


        $("tfoot input").focus( function () {
            if ( this.className == "search_init" )
            {
                this.className = "";
                this.value = "";
            }
        } );
        $("tfoot input").blur( function (i) {
            if ( this.value == "" )
            {
                this.className = "search_init";
                this.value = asInitVals[$("tfoot input").index(this)];
            }
        } );

        var oTable = $('.exam').dataTable( {
            "oLanguage": {
                "sSearch": "Search all columns:"
            },
            "bStateSave": true,
            "fnInitComplete": function() {
                var oSettings = $('.exam').dataTable().fnSettings();
                for ( var i=0 ; i<oSettings.aoPreSearchCols.length ; i++ ){
                    if(oSettings.aoPreSearchCols[i].sSearch.length>0){
                        $("tfoot input")[i].value = oSettings.aoPreSearchCols[i].sSearch;
                        $("tfoot input")[i].className = "";
                    }
                }
            }
        } );

        $("tfoot input").keyup( function () {
            /* Filter on the column (the index) of this element */
            oTable.fnFilter( this.value, $("tfoot input").index(this) );
        } );

    } );
</script>

</head>

<body>

<table id="example" class = "exam" width="100%" border="1" cellpadding="0" cellspacing="0" class="pretty" align="center">

jqueryプログラミング初心者です。ブラウザーでテーブルを表示すると、次のエラーが表示されます。

データ テーブルの警告 (テーブル ID = 'example'): データ テーブルを再初期化できません。このテーブルのデータ テーブル オブジェクトを取得するには、引数を渡さないか、bRetrieve と bDestroy のドキュメントを参照してください

この問題を解決するには??

4

1 に答える 1

0

同じテーブルを 2 回初期化しようとしています。まずあなたが走っている

 $(document).ready(function() {
    $('#example').dataTable( {
         "sPaginationType": "full_numbers",



    } );
} );

exampleのIDでテーブルのデータテーブルを初期化しようとしています。次に、ここで再度初期化を試みます。

var oTable = $('.exam').dataTable( {
        "oLanguage": {
            "sSearch": "Search all columns:"
        },
        "bStateSave": true,
        "fnInitComplete": function() {
            var oSettings = $('.exam').dataTable().fnSettings();
            for ( var i=0 ; i<oSettings.aoPreSearchCols.length ; i++ ){
                if(oSettings.aoPreSearchCols[i].sSearch.length>0){
                    $("tfoot input")[i].value = oSettings.aoPreSearchCols[i].sSearch;
                    $("tfoot input")[i].className = "";
                }
            }
        }
    } );

ここでは、試験のクラスでテーブルを初期化しています。この場合、クラス試験のあるテーブルと例の ID は同じテーブルです。エラーは基本的に、このテーブルを一度初期化したので、もう一度行うことはできません。

コードの最初のブロックを削除すると、問題が解決するはずです。

于 2012-06-01T15:52:44.230 に答える