DataTables:如何禁用可编辑列的行选择

时间:2014-01-15 13:13:03

标签: jquery datatables jeditable

我有一个简单的数据库,其中我使用jeditable编辑了一个列(第4行),类似于datatables.net上的示例:

oTable.$('td:eq(4)').editable(function(value, settings) { 
var valueOld = oTable.fnGetData(this);
if(valueOld != value) {
    alert("changed");
}
else { 
    alert ("unchanged");
}
    return(value);
}, 
{ 
type    : 'textarea',
submit:'OK'
});

我也希望能够通过点击它来选择一行(再次按照datatables.net上的示例):

$('#example tr').click( function() {
    $(this).toggleClass('row_selected');
});

但是,当用户单击该行的第4列时,选择该行是没有意义的,因为该单元格是可编辑的。单击此可编辑列时如何禁用行选择?

我没有使用TableTools。

2 个答案:

答案 0 :(得分:0)

您可以检查在单击处理函数中实际单击的元素,以确保它不是第4列。

$("#example tr").click( function(event) {
    var target = $(event.target);
    if(!target.is(":nth-of-type(4)") {
        $(this).toggleClass('row_selected');
    }
}

答案 1 :(得分:0)

虽然旧版本普遍存在时已经提出并回答了这个问题,但对于使用当前版本的人来说,这很有效:

select: {
  style:    'os',   //default but you have to specify it, no idea why
  selector: 'tr:not(.no-select) td'
}

然后通过在其上添加no-select类来管理哪些行无法选择。

通过https://datatables.net/forums/discussion/30597/prevent-row-selection

旁注:不知道样式重新定义是否仍然存在问题。您可以尝试w / o并查看轮子是否脱落。