2016-04-22 4 views
0

У меня есть Datatables вместе с GridRowCount(), чтобы получить подсчет строк указанными группами в таблице html, сайт jfiddle равен here. Когда я запускаю код, браузер Chrome запускает ошибку uncaught type (...). Live не является функцией.Datatables Uncaught Type Error


Отображается ошибка с консоли.

rowtoggle.js:30 Uncaught TypeError: $(...).live is not a function 
 
rowtoggle.js:30 Uncaught TypeError: $(...).live is not a functionGridRowCount @ rowtoggle.js:30(anonymous function) @ rowtoggle.js:16i @ jquery-1.12.2.min.js:2j.fireWith @ jquery-1.12.2.min.js:2n.extend.ready @ jquery-1.12.2.min.js:2K @ jquery-1.12.2.min.js:2 
 
Navigated to http://localhost/datacentre/admin/request_pending.php 
 
rowtoggle.js:30 Uncaught TypeError: $(...).live is not a functionGridRowCount @ rowtoggle.js:30(anonymous function) @ rowtoggle.js:16i @ jquery-1.12.2.min.js:2j.fireWith @ jquery-1.12.2.min.js:2n.extend.ready @ jquery-1.12.2.min.js:2K @ jquery-1.12.2.min.js:2 
 
Navigated to http://localhost/datacentre/admin/request_pending.php


Ниже приведен код DataTables и GroupRowCount() pluggin.

$(document).ready(function() { 
 
\t \t \t $('#example').dataTable({ 
 
\t \t \t \t 
 
\t \t  \t "bLengthChange": false, 
 
       "bPaginate": false, 
 
       "bJQueryUI": true \t \t \t \t 
 
\t \t \t }).rowGrouping({ 
 
     iGroupingColumnIndex: 1, 
 
     \t sGroupingColumnSortDirection: "asc", 
 
     \t iGroupingOrderByColumnIndex: 0 , 
 
\t \t bExpandableGrouping: true, 
 
     bExpandSingleGroup: false, 
 
     iExpandGroupOffset: -1, 
 
     asExpandedGroups: [""] 
 
    }); 
 
\t GridRowCount(); 
 
}); 
 

 
function GridRowCount() { 
 
      $('span.rowCount-grid').remove(); 
 
      $('input.expandedOrCollapsedGroup').remove(); 
 

 
      $('.dataTables_wrapper').find('[id|=group-id]').each(function() { 
 
       var rowCount = $(this).nextUntil('[id|=group-id]').length; 
 
       $(this).find('td').append($('<span />', { 'class': 'rowCount-grid' }).append($('<b />', { 'text': rowCount }))); 
 
      }); 
 

 
      $('.dataTables_wrapper').find('.dataTables_filter').append($('<input />', { 'type': 'button', 'class': 'expandedOrCollapsedGroup collapsed', 'value': 'Expanded All Group' })); 
 

 
      **$('.expandedOrCollapsedGroup').live('click', function() { 
 
       if ($(this).hasClass('collapsed')) {** 
 
        $(this).addClass('expanded').removeClass('collapsed').val('Collapse All Group').parents('.dataTables_wrapper').find('.collapsed-group').trigger('click'); 
 
       } 
 
       else { 
 
        $(this).addClass('collapsed').removeClass('expanded').val('Expanded All Group').parents('.dataTables_wrapper').find('.expanded-group').trigger('click'); 
 
       } 
 
      }); 
 
     };

ответ

3

.live() является устаревшим в JQuery 1.7 и удалена в версии 1.9. Вы должны использовать .on()

$('.expandedOrCollapsedGroup').on('click', function() { 
//Your code 
}) 
+0

спасибо, только что сделано исправление –