Javascript datatable:点击该行,该行不会关闭
我有一行是这样定义的:Javascript datatable:点击该行,该行不会关闭,javascript,jquery,Javascript,Jquery,我有一行是这样定义的: oTable = $('#archivio').dataTable({ "bPaginate": false, "bInfo": false, "bAutoWidth": true, "sScrollY": 440, "bScrollCollapse": true, "sDom": '<"top"f>rt', "fnDrawCallback": function () { $('#ar
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');
});
}
});
oTable=$('#archivio')。数据表({
“bPaginate”:错误,
“bInfo”:假,
“bAutoWidth”:没错,
“sScrollY”:440,
“崩溃”:没错,
“sDom”:“rt”,
“fnDrawCallback”:函数(){
$('#archivio tbody tr')。悬停(函数(){
$(this.css('cursor','pointer');
},函数(){
$(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');
});
$(“#archivio tbody tr”)。单击(函数(e){
var nTr=$(此)[0];
var aData=oTable.fGetData(nTr);
$(oTable.fnGetNodes())。每个(函数(){
var nTr1=$(此)[0];
var aData1=oTable.fnGetData(nTr1);
如果(aData[1]!=aData1[1]){
$(this.removeClass('active');
可旋转。关闭(此);
}
});
if($(this.hasClass('active')){
$(this.removeClass('active');
var nTr=$(此)[0];
可旋转。关闭(nTr);
}否则{
可旋转。$('tr.row_selected')。removeClass('active');
$(this.addClass('active');
变量sOut=''+DataV+''+
''+OraV+''+VelocitaV+'km/h'+
“”+”
oTable.fnOpen(nTr,sOut,“详细信息”);
});
问题是,当我再次单击该行,然后将其关闭时,它不会关闭!我注意到在调试过程中,该函数重复了n次,即我对页面进行了多少次返工,因此,如果我对页面进行了两次返工,则该过程将重复两次,如果我对页面进行了三次返工,则将在三次预返工中重复三次,等等。就像我单击另一行一样,第一行关闭,另一行重新打开
如何运行关闭该行以再次单击的过程?问题是,我将函数定义为绘制表格的函数,因此在调用该函数的所有时间都被调用。因此,我定义了一个变量并进行了初步检查: if((states==null)| |(states==''){ states=$(“#archive tbody”)。在('click','tr',函数(e){ 谢谢大家。
dave什么是
“sDom”:'rt',
?这只是一种预感,但如果使用事件委派,它会起作用吗?$(“#archivio tbody”)。在('click'、'tr',function(e){
上,我忘了写我用于ASP.Net MVC的代码,我希望它不是为了这个。。。。