Подтвердить что ты не робот

Обнаружить изменение страницы в DataTable

С DataTable Я могу заказать, перечислить, сделать разбиение на страницы, но я хочу определить, когда изменяется разбиение на страницы, я видел API, но единственное, что я могу сделать, это изменить страницу, но не обнаружить это изменение.

4b9b3361

Ответ 1

Вы можете использовать fnDrawCallback или fnInfoCallback для обнаружения изменений, когда нажата кнопка next, оба из них будут запущены.

Но будьте осторожны, изменения страниц не являются единственным источником, который может запускать эти обратные вызовы.

Ответ 2

Если у вас версия более 1,8, вы можете использовать ее, чтобы попасть в события изменения страницы:

    $('#myTable').on('page', function () {...} );

Надеюсь, это поможет!

UPDATE:

В некоторых комментариях указано, что для них использовался .live() вместо .on(). Имейте в виду, что вы должны попробовать оба и посмотреть, какой из них лучше всего подходит в ваших конкретных обстоятельствах! (Я считаю, что это может иметь отношение к вашей версии на jQuery, но, пожалуйста, прокомментируйте, если вы найдете другую причину!)

Ответ 3

События пейджинга обрабатываются таким образом,

 $(document).ready(function() {

    $('#example')
        .on( 'order.dt',  function () { console.log('Order' ); } )
        .on( 'search.dt', function () {console.log('Search' ); } )
        .on( 'page.dt',   function () { console.log('Page' ); } )
        .dataTable();
} );

зарегистрированный на официальном сайте, здесь http://www.datatables.net/examples/advanced_init/dt_events.html

Событие length.dt запускается всякий раз, когда изменяется длина страницы таблицы.

$('#example').dataTable();

$('#example').on( 'length.dt', function ( e, settings, len ) {
    console.log( 'New page length: '+len );
} );

http://datatables.net/reference/event/length

Другие события здесь

datatables.net/reference/event/

Ответ 4

Я работал, используя:

$('#id-of-table').on('draw.dt', function() {
    // do action here
});

Ответ 5

$('#tableId').on('draw.dt', function() {
    //This will get called when data table data gets redrawn to the      table.
});

Ответ 6

Альтернативным подходом было бы зарегистрировать обработчик событий на странице разбиения на страницы так:

$("#dataTableID_paginate").on("click", "a", function() { alert("clicked") });

Замените "#dataTableID_" на идентификатор вашей таблицы, конечно. И я использую метод JQuery ON, так как это лучшая практика.

Ответ 7

Попробуйте использовать делегат вместо живого, как здесь:

$('#link-wrapper').delegate('a', 'click', function() {
  // do something ..
}

Ответ 8

Эта хорошая работа

$('#id-of-table').on('draw.dt', function() {
    // do action here
});

Ответ 9

Я ничего не нашел в API, но одна вещь, которую вы могли бы сделать, это подключить обработчик событий к стандартному указателю и определить, изменилось ли оно:

$('.dataTables_length select').live('change', function(){
       alert(this.value);
    });