2017-12-19 14 views
1

데이터 테이블을 사용하여 데이터를 표시하려고 시도 할 때마다 체크 상자에서 id 값을 가져 오려고 할 때마다 undefined이 표시됩니다.tabledata는 체크 박스에서 id 값을 얻습니다.

데이터 테이블 코드

$(function() { 
     $('#reviews_data').DataTable({ 
      processing: true, 
      serverSide: true, 
      ajax: url, 
      columns: [ 
       { 
        data: 'id', render: function (id) { 
        return '<input type="checkbox" class="icheckbox_minimal" data-id="'+id+'"> '; 
       } 
       }, 
       {data: 'status', render: function (status,data,rowData) { 
        return ' <div class="checkbox">\n' + 
         '<input id="exampleCheckboxSwitch" type="checkbox" data-id="'+rowData.id+'">\n' + 
         '<label for="exampleCheckboxSwitch"></label>\n' + 
         '</div>'; 
       }}, 
       { 
        data: 'status', render: function (data, data1, row, meta) { 
        return data + ' <br>' + row.created_at; 
       }, "bUseRendered": false 
       }, 
       {data: 'created_at', name: 'created_at'}, 
      ] 
     }); 
    }); 

당신은 내가이 jQuery를 사용하여

data-id="'+rowData.id+'" 

에서 ID를 얻으려고 코드에서 보는 바와 같이이 하나

{data: 'status', render: function (status,data,rowData) { 
        return ' <div class="checkbox">\n' + 
         '<input id="exampleCheckboxSwitch" type="checkbox" data-id="'+rowData.id+'">\n' + 
         '<label for="exampleCheckboxSwitch"></label>\n' + 
         '</div>'; 
       }}, 

이 문제 코드

$(document).change('.checkbox',function() { 
     var id = $(this).data('id'); 

     console.log(id); 

    }); 

데이터 ID 대신 값을 사용하려고했지만 어느 것이 든 작동 했습니까

해결 방법은 무엇입니까?

답변

1

여기에 근본적인 실수가 있습니다. 이와 같은 이벤트 위임을 사용할 수 없습니다.

$(document).change('.checkbox',function() { 
    var id = $(this).data('id'); 
    console.log(id); 
}); 

이 방법보십시오 :

$(document).on('change', '.checkbox', function() { 
    var id = $(this).data('id'); 
    console.log(id); 
}); 
+0

좋은 나뿐만 아니라 지원 변화에 알고하지 않았다, 그러나 왜 $ (문서) .change 작동하지 않았다? – user3763103

+0

@ user3763103 올바른 구문이 아닙니다. 단순한... –