Я сделал это недавно, чтобы скрыть / показать дополнительную информацию для каждой строки. Вот фрагмент моего кода:
function fnTableRowClickHandler()
{
var nTr = this;
var oT = $(this.parentNode.parentNode).dataTable()
if ( $(this).hasClass('highlighted') )
{
/* This row is already open - close it */
oT.fnClose( this );
$(this).removeClass('highlighted')
}
else
{
/* Open this row, if it's classy enough */
if ( oT.fnGetData( nTr ) == null ) return;
$(this).addClass('highlighted')
oT.fnOpen( nTr, fnFormatDetails(oT, nTr), 'listingDetails opened' );
}
}
Мне пришлось добавить эту проверку против нуля в else, потому что это добавило бы короткое пустое расширение для каждого элемента в расширенной строке, если была нажата дополнительная информация.
Позже добавим обработчик в таблицу:
$("#TableId tbody tr").live( 'click', fnTableRowClickHandler )