我確實有一個在頁面上運行的代碼。頁面包含3個選項卡,每個選項卡包含一個表格和2個日期輸入字段以及用於發送請求的按鈕。 JS看起來像這樣。重新加載數據表內容
$(document).ready(function(){
var tbl1 = $("tbl1").dataTable(){ //a lots of parametres}
.. //2 more tbl2 and tbl3 variable initialization
$("btn1").click(function(){
tbl1.fnReloadAjax(tbl.oSettings());
});
..//2 more btn2 and btn3 action initialization
})
第一次頁面加載時,日期輸入字段有10天的時間,表中包含最近10天的記錄。現在我做了一些更改,我確實有一個新的ajax請求從服務器刪除記錄,我需要更新表格內容。 每行都有一個按鈕,然後按下它可以刪除服務器上的此記錄。一切正常,但看到變化需要重新加載整個頁面。 我曾嘗試這樣做:
function removeData(source){
$.post('delete_record',{}, function ...)// ajax request to remove data
alert("deleted"); // notice to user that record was deleted
tbl1.fnReloadAjax(tbl1.oSettings()); // ERROR no ref to tbl1(trying to update table content)
}
誤差becouse removeData功能REF裏面TBL1對象亙古不變的存在,becouse TBL1被內部定義$(document).ready函數。我怎麼可以得到鏈接tbl1出
我已經試過現在表功能準備()的表初始化代碼。像
var getoTabele = function(){
var oTable = $("tbl1").dataTable..... //initialization code
...
...
return oTable;
}
現在的東西,我可以使用oTable removeData函數內becouse我可以鏈接removeData功能
var oTable = getoTable() // Data warning. Cannot reinitialise DataTable
裏面哪個是對becouse功能getoTable創造新oTable不是裁判舊
這是偉大的:)。我自己找到了解決方案,但它很複雜,我使用單例模式,並且檢查是否被初始化。 – simar 2012-07-11 08:29:48
這是好得多,我的解決方案更乾淨整潔。非常感謝,我很抱歉,我確實犯了錯誤,並且強烈要求你幫助不起作用。 – simar 2012-07-11 08:35:03