2015-04-01 62 views
0

我正在使用datatables.jshttps://www.datatables.net/並且正在運行中,我希望用戶爲顯示的觸及表選擇一行。允許爲每個顯示的數據表選擇一行

我已經嘗試了幾件事,但無法讓它工作,我的腳本檢查所有的數據表而不是你選擇的。我的理解是因爲在我的代碼中我使用var table = $('table').DataTable();來獲取所有表

但我不知道如何指定它,因此它檢查是否在數據表中的某一行上設置了selected類。

var table = $('table').DataTable(); 

$('table tbody').on('click', 'tr', function() { 
    if ($(this).hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } 
    else { 
     table.$('tr.selected').removeClass('selected'); 
     $(this).addClass('selected'); 
    } 
}); 
+1

你試圖讓選擇在多個表的工作嗎?例如。你有3個表格,你希望每個表格都有它自己的選擇處理。如果是這種情況,我會看到兩個選項,或者分別使用ID設置每個表或者在on()事件中獲取父表**在函數內部,就像'var table = $(this).closest( 「table」)' – 2015-04-01 14:36:37

+0

是的,我得到了5張桌子,所有5張桌子裏面都有數據。我想這樣做,當有人點擊一行時,它會突出顯示(通過添加一個類),並允許它只突出顯示每個表的一行。我會檢查你的建議@ amura.cxg – Jordy 2015-04-01 14:38:36

+0

我試過你的第二個猜測,它的工作@ amura.cxg非常感謝! – Jordy 2015-04-01 14:42:23

回答

1

on()事件中獲取行的表而不是使用函數外定義的表。

代碼

$('table tbody').on('click', 'tr', function() { 
    var table = $(this).closest("table"); 
    if ($(this).hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } 
    else { 
     table.$('tr.selected').removeClass('selected'); 
     $(this).addClass('selected'); 
    } 
}); 
+1

感謝上帝,jQuery具有這些功能,使生活更輕鬆。非常感謝您爲我分類! – Jordy 2015-04-01 14:51:17

+0

什麼是'table。$('tr.selected')'? – charlietfl 2015-04-01 14:53:48

+0

在表內搜索一個'tr',並選擇類'@charlietfl – Jordy 2015-04-01 14:54:54

相關問題