Javascript 您只希望选择或取消选择一个单元格。因此,在上面的函数中,将所有tr替换为td。与此类似$('#table tbody').on('click','td',function(){if($(this).hasClass('selected')){$(this.
Javascript 您只希望选择或取消选择一个单元格。因此,在上面的函数中,将所有tr替换为td。与此类似$('#table tbody').on('click','td',function(){if($(this).hasClass('selected')){$(this.,javascript,jquery,datatables,Javascript,Jquery,Datatables,您只希望选择或取消选择一个单元格。因此,在上面的函数中,将所有tr替换为td。与此类似$('#table tbody').on('click','td',function(){if($(this).hasClass('selected')){$(this.removeClass('selected');//do this}else{table.$('td.selected').removeClass('selected');$(this.addClass('selected'));//这样做})
您只希望选择或取消选择一个单元格。因此,在上面的函数中,将所有tr替换为td。与此类似$('#table tbody').on('click','td',function(){if($(this).hasClass('selected')){$(this.removeClass('selected');//do this}else{table.$('td.selected').removeClass('selected');$(this.addClass('selected'));//这样做});不要点击任何子行,如图所示,我可以点击子行,同样,不要点击任何子行我不确定我是否完全理解这个问题。。但我认为,您只需要选择或取消选择一个单元格,而不是整行。因此,在上面的函数中,将所有tr替换为td。与此类似$('#table tbody').on('click','td',function(){if($(this).hasClass('selected')){$(this.removeClass('selected');//do this}else{table.$('td.selected').removeClass('selected');$(this.addClass('selected'));//这样做});不要单击任何子行,如图所示,我可以单击子行,再次,不要单击任何子行亲爱的Bindrid,你有一个好主意,但我检查并检测:当单击详细信息控制(fa square)时,我仍然选择子行,当主行未选择Dear Bindrid时,你有一个好主意,但我检查并检测:当单击详细信息控制(fa square)时,当未选择主行时,我仍然选择子行
$('#table tbody').on('click', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
//do this
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
//do this
}
});
$(document).ready(function () {
// Normal table definition
var table = $('#example').DataTable({
"data": testdata.data,
select:"single",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": '',
"render": function () {
return '<i class="fa fa-plus-square" aria-hidden="true"></i>';
},
width:"15px"
},
{ "data": "name" },
{ "data": "position" },
{ "data": "office" },
{ "data": "salary" }
],
"order": [[1, 'asc']]
});
// Add event listener for opening and closing details
// Note the click event is only on the cell with the details-control class
$('#example tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var tdi = tr.find("i.fa");
var row = table.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
// change the two font awesome icons
tdi.first().removeClass('fa-minus-square');
tdi.first().addClass('fa-plus-square');
}
else {
// Open this row
row.child(format(row.data())).show();
tr.addClass('shown');
tdi.first().removeClass('fa-plus-square');
tdi.first().addClass('fa-minus-square')
}
});
// This event handler prevents the details-control from changing the select row from occurring
table.on("user-select", function (e, dt, type, cell, originalEvent) {
if ($(cell.node()).hasClass("details-control")) {
e.preventDefault();
}
})
});
$(document).ready(function () {
var table = $('#example').DataTable({
"data": testdata.data,
select: "single",
"columns": [
{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": '',
"render": function () {
// Use Font Awesome for the expander in the first cell
return '<i class="fa fa-plus-square" aria-hidden="true"></i>';
},
width: "15px"
},
{ "data": "name" },
{ "data": "position" },
{ "data": "office" },
{ "data": "salary" }
],
"order": [[1, 'asc']]
});
// Add event listener for opening and closing details
$('#example tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
// get the Font Awesome container
var tdi = tr.find("i.fa");
var row = table.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tdi.first().removeClass('fa-minus-square');
tdi.first().addClass('fa-plus-square');
}
else {
// check to see if the child row exists.
// dont want to overwrite it if its already there.
if (row.child() && row.child().length > 0) {
row.child.show();
}
else {
// Open this row
row.child(format(row.data())).show();
}
tdi.first().removeClass('fa-plus-square');
tdi.first().addClass('fa-minus-square');
}
});
// Keeps the expander from being selected
table.on("user-select", function (e, dt, type, cell, originalEvent) {
if ($(cell.node()).hasClass("details-control")) {
e.preventDefault();
}
});
// If the parent row gets deselected by the user, deselect any
// selected child rows
table.on("deselect", function (e, dt, type, indexes) {
if (type === 'row') {
var child = dt.row(indexes[0]).child();
if (child && child.length > 0) {
$(child[0]).find(".selected").removeClass("selected");
}
}
});
$("#example").on("click", ".dt-childtable tr", function () {
var tr = $(this).closest("tr");
var childTbl = tr.closest("table");
var parentRow = childTbl.closest("tr").prev();
// see if this row is already selected
var isSelected = tr.hasClass("selected");
// remove previous selects from child table
childTbl.find(".selected").removeClass("selected");
if (isSelected) {
// this is a behavior question do you want the parent row to deselect with
// when the child row is.
//table.rows(parentRow).deselect();
} else {
tr.addClass("selected");
// if the child is selected, make sure the parent is selected but
// don't want to trigger a select event if the row
// is already so check if selected
if (!$(table.row(parentRow).node()).hasClass("selected")) {
table.rows(parentRow).select();
}
}
});
});