2013-09-26 32 views
5

Tôi có bảng với cột cuối cùng là một yếu tố để có được toàn bộ dữ liệu liên tiếp,Jquery Datatables xử lý sự kiện không làm việc với phân trang

Khi tôi sử dụng phân trang, chỉ có trang đầu tiên mà gây nên xử lý sự kiện của tôi, trang 2-3 - 4 và như vậy không kích hoạt trình xử lý sự kiện của tôi.

Khi tôi tắt phân trang, tất cả các bản ghi sẽ kích hoạt trình xử lý sự kiện của tôi.

Dưới đây là javascript để khởi tạo và xử lý sự kiện

var OTkaryawan = $('#table_karyawan').dataTable({ }); 

$(".select_row").click(function() { 
//     var row = $(this).closest('tr')[0]; 
//     var aData = OTkaryawan.fnGetData(row); 
//     alert(aData[0]); 
        alert('A'); 
       }); 

Dưới đây là html cho bàn của tôi

<table id="table_karyawan" style="border: 1px #ccc solid;"> 
        <thead> 
         <tr> 
          <th>NIK</th> 
          <th>Nama Lengkap</th> 
          <th>Lokasi Kerja</th> 
          <th>Departemen</th> 
          <th>Jabatan</th> 
          <th>Action</th> 
         </tr> 
        </thead> 
        <tbody> 
         <?php foreach ($master_karyawan as $key => $value): ?> 
          <tr> 
           <td><?= $value['nik']; ?></td> 
           <td><?= $value['nama']; ?></td> 
           <td><?= $value['lokasikerja']; ?></td> 
           <td><?= $value['departemen']; ?></td> 
           <td><?= $value['jabatan']; ?></td> 
           <td class="select_row">Select</td> 
          </tr> 
         <?php endforeach; ?> 
        </tbody> 
       </table> 

Dưới đây là một jsfiddle chứng minh hành vi này. http://jsfiddle.net/stefenwiranata/3ZLth/

Trả lời

12

Thử gắn trình xử lý sự kiện bằng chức năng .on() như this.

+0

ooo nó hoạt động, cảm ơn bạn, tại sao tôi không thể sử dụng $ (". Select_row"). Click (function() {}); ? –

+1

Bởi vì hàm .click() chỉ cho phép bạn thực hiện các hành động trên DOM hiện tại chứ không phải các phần tử được thêm sau khi liên kết nhấp chuột. –

Các vấn đề liên quan