Я новичок в DataTables, и я столкнулся с огромной (для меня) проблемой, которую я просто не понимаю, как решить. Вот моя живая демонстрация https://codepen.io/Balzzac/pen/mpdGgL с вопросами в определенных местах.
Позвольте мне объяснить: у меня есть таблица (id='js_table'), которая получает данные из вызова AJAX (в codepen - из переменной dataSet). Он имеет 2 столбца: «Назначено» и «Имя». Когда приходят данные, я отображаю первый столбец, заменяя «да»/«нет» кружками для типа === «отображать» и «назначено»/«не назначено» для «остального», так что это выглядит красиво и предоставляет пользователю возможность, нажав на кружок, назначить или отменить назначение человека.
При нажатии на кружок (js_assign_element) JS запускает функцию, в которой заменяет классы (с зеленого на красный и наоборот), а также меняет атрибуты данных на «назначенные», когда человек не был назначен, и «не назначен», когда человек был. Но сама таблица не «понимает/не распознает» изменение, поэтому она сортирует и фильтрует первый столбец, как будто изменений не было.
$(document).off('click', '.js_assign_element').on('click', '.js_assign_element', function (event) {
event.preventDefault();
event.stopPropagation();
if ($(this).hasClass("__assigned")) {
$(this).removeClass("__assigned").attr("data-search", "not assigned").attr("data-filter", "not assigned").attr("data-sort", "not assigned").attr("data-order", "not assigned")
}
else
{
$(this).addClass("__assigned").attr("data-search", "assigned").attr("data-filter", "assigned").attr("data-sort", "assigned").attr("data-order", "assigned")
}
// Tried Following:
// $("#js_table").DataTable().draw() - doesn't work
// $("#js_table").DataTable().rows().invalidate("dom").draw() - doesn't work
// $("#js_table").DataTable().rows().invalidate().draw() - doesn't work either
})
Не могли бы вы посмотреть и помочь мне с моим вопросом (ами)? Спасибо