18

たとえば、id="datatable"のテーブル要素がdatatablesで初期化されているかどうかを確認したいと思います。このようなもの:

if ($('#datatable').dataTable().initialized) {
  alert("initialized!");
}
else {
      alert("not initialized!");
    }

どうやってやるの?ありがとう!

4

7 に答える 7

31

jQueryデータテーブルでfnIsDataTable関数を使用できます

var ex = document.getElementById('example');
if ( ! $.fn.DataTable.fnIsDataTable( ex ) ) {
  $(ex).dataTable();
}

あなたはAPIでより多くの情報を見つけることができます

于 2013-08-02T05:54:13.583 に答える
18

まず、データテーブルを初期化するときに特別なクラス名を追加します。

$('.datatable').not('.initialized').addClass('initialized').dataTable()

そして今、あなたはそれらをクラス名で区別することができます:

alert( $('#datatable').hasClass('initialized') )
于 2011-02-18T18:50:57.650 に答える
7

これに対する正しい答えは次のとおりだと思います。

$(document).ready(function(){
    if (jQuery().dataTable) {
         // your code to do some detaul set ups 
    }
});

例えば

$(document).ready(function(){
    if (jQuery().dataTable) {

            $.extend( $.fn.dataTable.defaults, {
                iDisplayLength : 200,
                aLengthMenu : [[100, 200, 300, -1], [100, 200, 300, "All"]],
            });
        }
});

このようif(jQuery().<libname>)にして、ロードされているライブラリがロードされているかどうかを確認できるはずです。

于 2014-12-31T07:48:32.287 に答える
2

Datatableには、要素がデータテーブルとして初期化されているかどうかを確認するメソッドがあります- $ .fn.DataTable.fnIsDataTable

tableElement = document.getElementById('your table ID');
$.fn.DataTable.fnIsDataTable(tableElement); // returns true or false
于 2016-02-10T07:22:01.500 に答える
1

.dataTable()を呼び出した後、それはテーブルを識別可能にする何かをしますか?つまり、「初期化された」新しいクラスなどを追加しますか?もしそうなら、あなたはそのようにアイテムをループすることができます:

$('.datatable').each(
    function(index, element) {
        var _table = $(element);
        if (_table.hasClass('initialised')) {
            // Do stuff
        } else {
            // Do stuff
        }
    }
);

これがあなたの言っていることではない場合は、お詫び申し上げます。あなたの質問では、「dataTable()」が実際に何をするのかは明確ではありません。

于 2011-02-18T18:47:45.963 に答える
0

私はcallback()自分のシナリオで同じことをするために関数を使用しました。別のアプローチとしてこれを共有することを考えた

/* During Initialization */
var isTableInitialized = false;
$('#datatable').dataTable({/* your dataTable configurations*/},initializeDT());

/* Implement a callback function to set the value */
function initializeDT() {
    isTableInitialized = true;
}

後でコードで..

/* Checking for Initialization is easier*/
if(isTableInitialized) {
    /* Do something here */
} else {
    /* Do something here */
}
于 2016-01-25T08:26:35.223 に答える
0

これは私のために働いた。

    $(document).ready(function() {
    if (jQuery().dataTable) {
        $.extend( $.fn.dataTable.defaults, {
            /*some default settings*/
        });
    }

    $('#myDataTable').DataTable();
});
于 2021-02-17T12:07:19.010 に答える