我正在尝试在我的数据表中制作一个关闭onClick所有打开的tr的按钮。
我正在使用以下命令打开行:
oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'newtr');
是否有可能关闭我的数据表中所有打开的tr行?
我正在尝试在我的数据表中制作一个关闭onClick所有打开的tr的按钮。
我正在使用以下命令打开行:
oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'newtr');
是否有可能关闭我的数据表中所有打开的tr行?
初始化数据表后,您可以在所有 tr 上绑定单击事件并使用以下方法关闭所选行:
oTable.$('tr').click(function(){
if ( oTable.fnIsOpen(this) ) {
oTable.fnClose( this );
}
});
有关数据表 API 的更多文档,请参阅此处。
我认为您试图完成与我相同的事情,即当我打开第二行时,我希望前一行关闭。
这意味着我一次只能显示一行详细信息。
$(document).ready(function () {
var previousTr;
oTable = $('#bookingstable').dataTable
({
"aoColumnDefs": [
{ "bVisible": false, "aTargets": [2, 6, 7, 8, 9, 12, 13, 14, 15] }
]
});
$('#bookingstable tbody td').live('click', function () {
var selectedTr = $(this).parents('tr')[0];
if (oTable.fnIsOpen(previousTr) && previousTr != selectedTr)) {
oTable.fnClose(previousTr);
}
if (oTable.fnIsOpen(selectedTr)) {
oTable.fnClose(selectedTr);
}
else {
oTable.fnOpen(selectedTr, fnDetailsRow(selectedTr), 'details-row');
previousTr = selectedTr;
}
});
});
function fnDetailsRow(selectedTr) {
var TrData = oTable.fnGetData(selectedTr);
var detailsRow = '<table border="0">';
detailsRow += '<tr><td class="space" rowspan="4"><br /><h1>⇉</h1></td><td class="LabelField">Passenger Name</td><td class="ValueField">' + TrData[3] + '</td><td class="LabelField" rowspan="2">Pickup Details</td><td class="ValueField" rowspan="2">' + TrData[14] + '</td><td class="LabelField" rowspan="2">Customer Notes</td><td class="ValueField" rowspan="2">' + TrData[9] + '</td></tr>';
detailsRow += '<tr><td class="LabelField">Phone Number</td><td class="ValueField">' + TrData[2] + '</td></tr>';
detailsRow += '<tr><td class="LabelField">Car Type</td><td class="ValueField">' + TrData[6] + '</td><td class="LabelField" rowspan="2">Dropoff Details</td><td class="ValueField" rowspan="2">' + TrData[15] + '</td><td class="LabelField" rowspan="2">Office Notes</td><td class="ValueField" rowspan="2">' + TrData[12] + '</td></tr>';
detailsRow += '<tr><td class="LabelField">Pax and Bags</td><td class="ValueField">' + TrData[7] + ' Paxs & ' + TrData[8] + ' Bags' + '</td></tr>';
return detailsRow;
}
请注意,我var previousTr
在打开任何第 2 行之前声明准备好文档并检查它。当然记得在打开新行后再次设置它。