2015-04-01 2 views
0

Я использую datatables.jshttps://www.datatables.net/ и я столкнулся с проблемой, когда я хочу, чтобы пользователь выделил одну строку для таблицы достижений.Разрешить выбор строки один раз для каждого отображаемого типа данных

Я пробовал несколько вещей, но не могу заставить его работать, мой скрипт проверяет все данные, а не тот, который вы выбираете. Который я понимаю, потому что в моем коде я извлекаю все таблицы, используя var table = $('table').DataTable();

Но я понятия не имею, как я могу указать его, чтобы он проверял, установлен ли класс на одной из строк в данных.

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 таблицы, и вы хотите, чтобы каждая таблица имела собственную обработку выбора. Если это так, я вижу два варианта: либо настроить каждую таблицу отдельно с идентификаторами, либо в событии 'on()' получить родительскую таблицу ** внутри ** функцию, например 'var table = $ (this) .closest («table») ' –

+0

Да, именно так я получил 5 таблиц, все 5 таблиц содержат данные внутри них. И я хочу сделать это, когда кто-то нажимает на строку, которую он подсвечивает (добавив класс), и позволяя ему выделять только одну строку для каждой таблицы. Я проверю ваши предложения @ amura.cxg – Jordy

+0

Я попробовал ваше второе предположение, и это сработало @ amura.cxg Спасибо большое! – Jordy

ответ

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

+0

Что такое 'table. $ ('Tr.selected')'? – charlietfl

+0

внутри таблицы искать 'tr' с классом' selected' @charlietfl – Jordy

Смежные вопросы