~datatable row를 하나만 열고 싶었쪙~
예제
$('#example tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = table.row( tr );
if ( row.child.isShown() ) {
row.child.hide();
tr.removeClass('shown');
}
else
{
if ( table.row( '.shown' ).length ) {
$('.details-control', table.row( '.shown' ).node()).click();
}
row.child( format(row.data()) ).show();
tr.addClass('shown');
}
})
내코드
$('#region_mapping_table tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = otable.row( tr );
if ( row.child.isShown() ) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
// $('#eachMapId').remove();
// $('td.details-control').remove();
}
else {
// Open this row
$('#eachMapId').remove();
if (eachmap) {
eachmap.off();
// eachmap.remove();
}
if ( otable.row( '.shown' ).length ) {
$('.details-control', otable.row( '.shown' ).node()).click();
}
row.child( format(row.data()) ).show();
// createEachMapContainer(JSON.parse(row.data().coordinates));
createEachMapContainer(row.data());
tr.addClass('shown');
}
} );
참고
https://datatables.net/forums/discussion/34367/keep-only-one-child-row-opened-at-a-time