2016-02-29 24 views
0

我有一個數據表jQuery插件的問題。當我的數據表加載時,默認情況下頁面前的值是10,但在此之後,我改爲每頁25條記錄。因此,在第10條記錄之後,點擊事件不起作用。點擊事件不工作,當我在jQuery數據表中顯示每頁25條記錄

我使用的單擊事件的代碼:

function driverClickable(){ $('#tabletest tbody tr').click(function() { 
//setDriverEvents(); 
var data = $(this).html(); 
//console.log(data); 
var find = '<td>'; 
var find2 = '</td>'; 
var find3 = '<td class="sorting_1">'; 
var re = new RegExp(find, 'g'); 
var re2 = new RegExp(find2, 'g'); 
var re3 = new RegExp(find3, 'g'); 
data = data.replace(re, ','); 
data = data.replace(re2, ''); 
data = data.replace(re3, '');  
ViewDriver(data); }); } 

function setDriverEvents(){ driverClickable(); 
$('#tabletest').on('page.dt', function() { 
setTimeout(function(){ 
    driverClickable(); 
}, 500); });} 

,這是我的代碼添加到數據的數據表

tableDriverData = $('#tabletest').dataTable({ 
     "data": driverData, 
    }); 

,這是什麼問題妥善解決?

+0

使用事件代表團。插件更改DOM,因此當您的代碼運行時不會存在所有行 – charlietfl

+0

嘗試「length.dt」事件或「draw.dt」事件。第一個事件是頁面長度被修改,第二個是渲染完成時。 –

+0

你可以給我舉個例子嗎?所以我可以改成我的代碼 –

回答

0

原因

數據表中刪除從DOM因各種原因不可見的行,以便當您將事件處理程序,它適用於目前唯一可見的元素。

SOLUTION

您需要通過在on()呼叫的第二個參數提供選擇使用事件委託。

$('#tabletest tbody').on('click', 'tr', function(){ 
    // ... skipped ... 
}); 

LINKS

更多信息請參見jQuery DataTables – Why click event handler does not work

相關問題