2014-10-08 48 views
3

我正在使用數據表版本1.9.4。使用datatable的fnIsDataTable函數我需要檢查數據表是否已經被初始化。但是使用fnIsDataTable函數總是返回false。以下是我的功能:函數fnIsDataTable始終返回false

function getData() { 
    if ($.fn.DataTable.fnIsDataTable("#example")) { 
     $("#example").dataTable(); 
    } else { 
     $("#example").dataTable({ 
      bLengthChange": false, 
      "bFilter": true, 
      "bInfo": false, 
      "bSort": false, 
      "iDisplayLength": 50 
     }); 
    } 
} 

有人可以幫助我嗎?

回答

3

我找到了解決方案。我們需要通過使用javascript函數getElementById來獲取該表格元素的引用,然後在fnIsDataTable函數中使用該引用變量來檢查其初始化。如下圖所示:

function getData() { 
 
    var ex = document.getElementById("example"); 
 
    if ($.fn.DataTable.fnIsDataTable(ex)) { 
 
    $("#example").dataTable(); 
 
    } else { 
 
    $("#example").dataTable({ 
 
     "bLengthChange": false, 
 
     "bFilter": true, 
 
     "bInfo": false, 
 
     "bSort": false, 
 
     "iDisplayLength": 50 
 
    }); 
 
    } 
 
}

+0

完美。謝謝! – Cheeky 2016-07-16 20:13:36

0

另外,因爲V1.10,你可以簡單地使用isDataTable代替fnIsDataTable

function getData() { 
 
    if ($.fn.DataTable.isDataTable("#example")) { 
 
    $("#example").dataTable(); 
 
    } else { 
 
    $("#example").dataTable({ 
 
     "bLengthChange": false, 
 
     "bFilter": true, 
 
     "bInfo": false, 
 
     "bSort": false, 
 
     "iDisplayLength": 50 
 
    }); 
 
    } 
 
}

查看文檔:https://datatables.net/reference/api/%24.fn.dataTable.isDataTable()

+1

他正在使用v1.9.4,'isDataTable()'被添加到v1.10。 – Raisch 2017-02-01 14:17:11

+0

@Raisch好點。適當地更新了我的措辭。 – AntonChanning 2017-02-06 11:41:45