2015-12-21 66 views
1

我在使用jQuery複選框打開/關閉數據表的功能。使用複選框切換數據表

它實際上如果我沒有定義數據表,那麼我打開/關閉沒有問題。

但我希望數據表默認打開,然後才能關閉並重新打開。我正在重新初始化警告。

我有這樣的事情:

$('#datatable-switch').on('click',function(){ 

    if($(this).attr('data-click-state') == 0) { 

    $(this).attr('data-click-state', 1); 
    showLockersDataTable(); 

    } else { 

    $(this).attr('data-click-state', 0) 
    lockersTable.DataTable().destroy(); 
    } 

}); 
+0

DataTables [無法啓動兩次](https://datatables.net/manual/tech-notes/3),這可能會導致您的問題。 –

+0

@Tarekis根據[documentation](https://datatables.net/manual/tech-notes/3#destroy),在重新初始化一個新表之前,可以使用destroy()來銷燬舊錶。 –

+0

你能顯示你的第一個初始化嗎? showLockersDataTable在哪裏? – Vanojx1

回答

1

這確實似乎是沒有問題的。你可能會搞亂的東西與你的

showLockersDataTable(); 

lockersTable.DataTable().destroy(); 

我無法分析,你沒有提供既不showLockersDataTable()也不lockersTable

但是你要簡單地解決這個問題是這樣的:

// Get the jQuery Object for your DataTable 
var example = $('#example'); 

// Bind listener on the checkbox 
$('#datatable-switch').on('click',function(){ 

if($(this).attr('data-click-state') == 0) { 

     $(this).attr('data-click-state', 1); 
     showDataTable(example); 

    } 
    else { 

     $(this).attr('data-click-state', 0) 
     hideDataTable(example); 
    } 
}); 

其中兩個使用的功能有:

// Declare show and hide functions 
function showDataTable(dataTable){ 

    dataTable.DataTable(); 

} 

function hideDataTable(dataTable){ 

    dataTable.DataTable().destroy(); 

} 

現在你對click監聽綁定,你可以在頁面加載啓動。

showDataTable(); 

這是關於JSFiddle的working example

+0

非常感謝!這工作完美。我非常接近,在複選框本身也有問題(錯誤的初始數據單擊狀態)。 Thx再次。 –