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

Обратный вызов изменения страницы данных

Я использую функцию 'fnDrawCallback' для изменения страницы. Это в основном решает мою цель. Единственное, что я должен указать эту функцию, когда я инициализирую объект dataTable. Есть ли способ сделать это после инициализации?

Например: Я делаю вот так:

$("#tableID").dataTables({'fnDrawCallBack':functionName});

Я хочу сделать вот так:

var oTable = $("#tableID").dataTables();
oTable.fnDrawCallback = functionName;    // or something like this

Решение:

oTable.aoDrawCallback.push(functionObj);
var functionObj = {
   fn: funtionName
};
4b9b3361

Ответ 1

Вы можете получить доступ к внутренним настройкам данных DataTables, чтобы манипулировать массивом обратного вызова draw (aoDrawCallback, а не fnDrawCallback внутри - его массив, поскольку может быть несколько обратных вызовов), или (и что я предлагаю) вы можете добавить 'draw прослушиватель событий:

var oTable = $("#tableID").dataTables();
$(oTable).bind( 'draw', functionName );

События, запущенные DataTables, описаны здесь: http://datatables.net/docs/DataTables/1.9.0/#summary_events

Ответ 2

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

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

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

Ответ 4

Вместо двух отдельных вызовов просто добавьте .bind() перед .dataTable(), например, следующее, которое запускает функцию setMouseDown всякий раз, когда происходит смена страницы (включая рендеринг первой страницы):

$('#myTable')
    .bind('page', setMouseDown())
    .dataTable( 
    { 
        bJQueryUI: true, 
        ... Other Init Stuff Here ... 
    });