2014-01-15 107 views
0

我有一個簡單的確定年代中,我一直在使用jeditable同樣對datatables.net的例子進行一列(第4期)編輯:數據表:如何禁用行選擇爲可編輯的列

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。

回答

0

您可以檢查單擊處理函數中實際單擊的元素,以確保它不是第4列。

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

邊注:不知道風格重新定義是否仍是一個問題。您可以嘗試不帶電,看看輪子是否脫落。

相關問題