2017-12-18 86 views
0

當我以響應模式單擊圖像時,它將在控制檯中返回行數據。但在正常情況下,我得到未定義的錯誤。獲取行數據的函數只能在數據表的響應模式下工作

  var table = $('.dataTable').DataTable({ 
       "responsive": true,         
       "columnDefs": [{ 
        "targets": 4, 
        "data": null, 
        "render": function (data, type, full, meta) { 
         if (type === 'display') { 
          data = "<a href='#' width='30px' class='editMe' data='" + full[0] + "'><img src='/images/edit.png' width='30px' /></a>"; 
         } 
         return data; 
        } 
       } , 

       { 
         "targets": 0, 
         "visible": false, 
         "searchable": false 
       }] 
      }); 


      $('.dataTable').on('click', '.editMe', function() { 

       console.log(table.row(this).data()); 

      }); 

回答

0

使用下面的代碼來代替:

$('.dataTable').on('click', '.editMe', function() { 
    var $row = $(this).closest('tr'); 
    if($row.hasClass('child')){ $row = $row.prev(); } 
    console.log(table.row($row).data()); 
}); 

代碼和演示見this example

+0

在這種情況下,在響應模式下不起作用。我使用console.log(table.row($(this).parents('tr')));並在兩種模式下工作。謝謝你的回答 – Amin

+0

@Amin,你是對的,我已經糾正了答案,並添加了一個例子,證明它在兩種模式下都能正常工作。 –

+0

謝謝,現在它完美的作品:) – Amin