2012-05-09 28 views
2

我快要失去理智了。我正在爲一家大公司制定一個項目,在他們的框架上。他們嚴重依賴於jQuery.datatables plugin,這並不是一件壞事,但文檔在我看來似乎很差,而且源代碼很難理解。短版本:我需要知道如何連接頁面更改的事件,所以我可以在發生時執行一些代碼。jQuery DataTables插件 - 頁面發生變化的地方

長版本:我有一個json數據放在表中,項目不帶有唯一的標識符;所以,在發送給dataTable之前,我添加一個列ID,該列ID填充了該數組中的項目索引併爲其創建一個列。在我調用fnUpdate之後,我隱藏索引列併爲每行添加一個單擊事件,並使用該列上的值來知道哪個json對象對應於該行。它不漂亮,但它的工作原理,直到我改變網頁的時間;那時候,它仍然隱藏着,但是它再次出現。我需要找到如何掛鉤頁面更改事件,以便我可以再次隱藏它們,或者我需要更優雅的方式來做同樣的技巧。

謝謝您的時間

回答

2

你可以使用fnDrawCallbackfnInfoCallback檢測到的變化。當下一次被點擊時,他們都被解僱。

但請注意,頁面更改不是可以觸發這些回調的唯一來源。

或者你可以嘗試這樣的事:

$('.dataTables_length select').live('change', function(){ 
    alert(this.value); 
}); 
+0

謝謝,我會試一下。你能告訴我,如果我可以用另一種方式添加fnDrawCallback,它不在表的初始化調用中嗎?像$('#dataTables')。fnDraCallBack(function(){...}); –

3

你可以聽這是由DataTable實例發出的「頁面」事件:http://datatables.net/docs/DataTables/1.9.1/DataTable.html#page

所以,你會做這樣的事情:

$(myTableInstance).bind('page', function() { 
    pagingFunction(); 
}); 
+0

謝謝,它肯定會工作。我無法在他們的文檔中找到使用它的方式,非常感謝您的示例。現在,我會保持Farhan Amad的解決方案,我認爲它爲我的項目提供了更多的基礎 –