0
Ajax없이 DataTables에 대한 행 세부 정보를 생성하고 있습니다. everythink는 괜찮습니다,하지만 난 숨기기 위해 다시 클릭 할 때 나는 오류가 점점 -잡히지 않은 TypeError : row.child.hasClass가 함수가 아닙니다.
$(document).ready(function() {
function format (name, value) {
return '<div>Name: ' + name + '<br />Value: ' + value + '</div>';
}
var table = $('#servicetable').DataTable({
stateSave: true,
pageLength: 10,
});
$('#servicetable tbody').on('click', 'button.test', function() {
var tr = $(this).closest('tr');
var row = table.row(tr);
row.child(format(tr.data('child-name'), tr.data('child-value'))).show();
if (row.child.hasClass('shown')) {
// 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');
}
});
});
내가 개방을위한 버튼을 클릭하면 :
Uncaught TypeError: row.child.hasClass is not a function
나쁜 무엇
나는 쇼 같은 somethink합니까? JSFiddle
'child'는 기능입니다. 이미 함수로 사용하고 있습니다. 'hasClass'는이 함수 호출의 결과에 적용될 수 있지만 함수 자체에는 적용될 수 없습니다. (당신이'show()'를 호출 할 때) – Maxx
열려있는 자식 행에 대해서는'row.child'가 존재하지 않습니까? 'row.child (형식 (tr.data ('child-name '), tr.data ('child-value '))) .show();'를'else { '범위로 이동하십시오 .... – davidkonrad
'row.child(). hasClass ('show')' – DavidDomain