Я получаю данные из контроллера codeigniter и отображаю их с использованием данных. Я хочу показать другие детали в дочернем ряду. Я могу открывать и закрывать по нажатию на кнопку, чтобы свернуть все дочерние строки, чтобы она выглядела как аккордеон. Поэтому моя проблема в том, что я хочу свернуть все дочерние строки по умолчанию, но все еще могу закрыть его кнопкой. Я прочитал много решений, но все еще не работает. Вот мой код
function format ( d ) {
// `d` is the original data object for the row
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'+
'<tr>'+
'<td>Add Ons</td>'+
'<td>Remarks</td>'+
'</tr>'+
'<tr>'+
'<td>---</td>'+
'<td>'+d.remarks+'</td>'+
'</tr>'+
'</table>';
}
$(document).ready(function() {
var table = $('#mydata').DataTable( {
ajax: {
url: "/chef/get_orderlist",
dataSrc: ''
},
colReorder: {
realtime: true
},
"aoColumns" : [
{
"className": 'details-control',
"data": null,
"defaultContent": ''
},
{data : 'order_id'},
{data : 'cust_name'},
{data : 'table_code'},
{data : 'menu_name'},
{data : 'order_qty'},
{
data: null,
render: function ( data, type, row, meta) {
return '<button id="status" class="status btn dt-buttons '+ data.item_status +
'" data-order_item_id="'+ data.order_item_id +'"'+
' data-item_status="'+ data.item_status +'" onclick="change_status()">'+ data.item_status +'</button>';
}
}
]
});
// FOR OPENING AND CLOSING THE ACCORDION
$('#mydata tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = table.row(tr);
if ( row.child.isShown() ) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
}
else {
// Open this row
row.child( format(row.data()) ).show();
tr.addClass('shown');
}
} );
// THIS IS THE PART WHERE THE CHILD ROWS SHOULD BE OPENED AS "DEFAULT"
$("#mydata").DataTable().rows().every( function () {
var tr = $(this.node());
this.child(format(tr.data('child-value'))).show();
tr.addClass('shown');
});
} );