У меня есть строка, которую я определил так:
oTable = $('#archivio').dataTable({
"bPaginate": false,
"bInfo": false,
"bAutoWidth": true,
"sScrollY": 440,
"bScrollCollapse": true,
"sDom": '<"top"f>rt',
"fnDrawCallback": function () {
$('#archivio tbody tr').hover(function () {
$(this).css('cursor', 'pointer');
}, function () {
$(this).css('cursor', 'auto');
});
}
});
и я определил функцию, чтобы щелкнуть по строке, которая открывает или закрывает ее информативную часть:
$("#archivio tbody tr").click(function (e) {
var nTr = $(this)[0];
var aData = oTable.fnGetData(nTr);
$(oTable.fnGetNodes()).each(function () {
var nTr1 = $(this)[0];
var aData1 = oTable.fnGetData(nTr1);
if (aData[1] != aData1[1]) {
$(this).removeClass('active');
oTable.fnClose(this);
}
});
if ($(this).hasClass('active')) {
$(this).removeClass('active');
var nTr = $(this)[0];
oTable.fnClose(nTr);
} else {
oTable.$('tr.row_selected').removeClass('active');
$(this).addClass('active');
var sOut = '<p><span class="badge"><i class="fa fa-calendar-o"></i> ' + DataV + '</span> <span class="badge"><i class="fa fa-clock-o">' +
'</i> ' + OraV + '</span> <span class="badge"><i class="fa fa-tachometer"></i> ' + VelocitaV + ' km/h</span>' +
'<a href="javascript:init(' + stringa + ')" class="btn btn-default btn-xs" style="float:right;">' +
'<i class="fa fa-external-link"></i> Apri mezzo</a></p>' + '<span class="text-muted" id="Indirizzo' + aData[1] + '"></span>'
oTable.fnOpen(nTr, sOut, 'details');
});
Проблема в том, что когда я нажимаю второй раз на линии, а затем закрываю ее, она не закрывается! Я заметил, что при отладке функция повторяется n раз, т.е. сколько раз я переработал страницу, поэтому, если я переработал страницу дважды, процедура повторяется дважды, если я переработаю страницу, повторяется три раза в три pre- раз и прочее. Как будто я нажимаю на другую строку, первая закрывает и снова открывает другую.
Как запустить процедуру закрытия строки, чтобы щелкнуть второй раз?
Проблема в том, что я определил функцию в одну, которая рисовала таблицу, и поэтому вызывалась все время, когда вызывалась функция. Поэтому я определил переменную и сделал первоначальную проверку:
if ((states == null) | | (states == '')) {states = $ ("#archive tbody"). on ('click', 'tr', function (e) {
Спасибо вам всем. Дейв
"sDom": '<"top"f>rt',
$("#archivio tbody").on('click', 'tr', function (e) {