单击按钮破坏并重新初始化数据表后,无法访问行中的数据

时间:2019-01-08 15:04:04

标签: javascript jquery datatables

无休止地看着之后,我看不到这里出了什么问题。

我的Javascript和HTML:

Write-Host "##vso[task.setvariable variable=appSettings_personalAccessToken;isSecret=false;isOutput=true;]MY_TOKEN_VALUE"

和html:

$.ajax({
          url: '/', 
          type: 'POST', 
          dataType: "json",
          data: JSON.stringify(arr),
          contentType: 'application/json; charset=utf-8',
          success: function(response){
            response = buildPhotoString(response);

            populateTable(response);
          }
        }
      );

 function populateTable(response){
    if ( $.fn.dataTable.isDataTable( '#dataTable' ) ) {
      var table = $('#dataTable').DataTable();
      table.destroy();
    }
    var table = $('#dataTable').DataTable( {
        data: response,
        columns: [
          { data: 'number' },
          { data: null,
            render: function(data, type, rows){
              return '<div class="btn-group"> <button id="b_Hoog" class="btn btn-md btn-success pull-left "> Hoogbouw</button> <button id="b_Laag" class="btn btn-md btn-danger pull-right"> Laagbouw</button> </div>';
            }
          },
          { data: 'photo'}
        ]
    });

  $('#dataTable').on( 'click', 'tbody #b_Hoog', function () {
    var data = table.row( $(this).closest('tr') ).data();
    updateDB('Hoogbouw', data.number );
  });
  $('#dataTable').on( 'click', 'tbody #b_Laag', function () {
    var data = table.row( $(this).closest('tr') ).data();
    updateDB('Laagbouw', data.number );
  });
  }

基本上,无论调用函数populateTable的次数如何,DataTable都可以正常绘制。但是,在多次调用populateTable后按下按钮b_Hoog或b_Laag时,数据未定义。第一次可以正常工作。 table.row.data确实总是返回数据。我得到的确切错误是:

body
  table(id='dataTable' class="table table-striped")
   thead
    th= 'Referentie'
    th= ' '
    th= 'Foto'
   tbody

我在这里做什么错了?

编辑:将index()添加到下面的行中修复了该死的东西

Uncaught TypeError: Cannot read property 'number' of undefined

0 个答案:

没有答案
相关问题