본문 바로가기

카테고리 없음

datatable row other child open

~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