2016-07-28 201 views
0

我有一個包含通知的頁面,我希望每10秒刷新一次,但我不想重新加載整個頁面,只是重新加載包含通知的div。通知本身在一個數據表中,當頁面被加載時被初始化,但是當div被重新加載時,我一直無法讓它重新初始化數據表。該div加載罰款,但只是一個普通的表。這裏是我的代碼:如何重新初始化Datatable?

$(document).ready(function() { 
    loadNotificationsTable(); 
}); 

setInterval(reloadNotificationsTable, 10000); 

function reloadNotificationsTable() { 
    $('#NotificationsTable').dataTable().fnDestroy(); 

    $("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*", ""); 

    $("#notificationsPlaceholder").ready(function() { 

     loadNotificationsTable(); 
    }); 
}; 

function loadNotificationsTable() { 
    $('#NotificationsTable').dataTable({ 
     ajax: "data.json", 
     "bLengthChange": false, 
     'iDisplayLength': 1000, 
     "bSort": false, 
     "bFilter": false, 
     "sDom": 'ft<"bottom"ilp>', 
     "bDestroy": false, 
     "bPaginate": false, 
     "bInfo":false 
    }); 
}; 

是否有人能夠幫助我,並告訴我我做錯了什麼?

+0

也許你想在loadback在回調完成後重新初始化 –

回答

1

嘗試重新初始化load後的數據表已經完成了回調:

$("#notificationsPlaceholder").load(location.href + " #notificationsPlaceholder>*",function(data){ 
    loadNotificationsTable(); 
}); 

而且這一點,因爲你要替換表

https://legacy.datatables.net/ref#bDestroy

"bDestroy": true, 
添加到您的初始化代碼
+0

完美地工作,謝謝! – necrofish666

+0

對不起,分心了,忘了。再次感謝。 – necrofish666

1

如果您需要定期刷新表格,請使用以下命令:

$('#table_id').DataTable().ajax.reload(); 

將此代碼與setTimeout()函數一起使用,以定期刷新數據表。