Есть ли способ динамически изменить класс одного заголовка в slick-grid 1.4.3?

Я заметил, что последняя версия slick-grid имеет атрибут 'headerCssClass' в столбце, который прекрасно работает, за исключением того, что я ограничен использованием slick-grid версии 1.4.3.

Я расширяю slick-grid, чтобы добавить функциональность сортировки нескольких столбцов, и мне нужно будет соответствующим образом установить класс каждого заголовка сортировки. Итак, чтобы повторить вопрос, кто-нибудь знает способ динамически изменить класс любого заданного заголовка в slick-grid 1.4.3?


person JoughTheFun    schedule 28.02.2012    source источник


Ответы (2)


Мне не очень нравится это решение, так как не рекомендуется использовать JQuery для изменения slick-grid, но вот:

var headers = $('.slick-header-columns').get(0).children;

удалить любую информацию о классе, отличном от значения по умолчанию, из всех заголовков (например, $(headers).removeClass('slick-header-column-sorted'))

перебирать столбцы slick-grid и использовать JQuery для добавления класса в желаемый индекс столбца

var header = headers[wantedColIdx];
$(header).addClass('yourClass');
person JoughTheFun    schedule 29.02.2012

Я думаю, вы можете сделать это с помощью jQuery.

Добавьте пустой класс css с каким-нибудь именем.

Затем вы можете вызывать addClass и removeClass для динамического изменения класса.

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/

i.e.

jQuery('.my-class').addClass('new-header-class');
person Craig    schedule 28.02.2012
comment
Да, я думал об этом, но я думаю, что единственный способ получить доступ к правильной ячейке заголовка, чтобы изменить ее класс, — это определить функцию onClick() для slick-grid и переопределить то, что она делает в настоящее время, если ячейка случается, что это ячейка заголовка - это, вероятно, сработает, за исключением того, что, похоже, это предполагает возможность неизвестных проблем. - person JoughTheFun; 29.02.2012
comment
Кроме того, похоже, что событие onClick не запускается, если ячейка не представляет фактический элемент (поэтому не будет работать для ячеек заголовков). - person JoughTheFun; 29.02.2012
comment
Вы можете вызывать это из любого места, для этого не требуется щелчок, если у вас есть «мой класс» или что-то еще, добавленное к тому, что вам нужно. - person Craig; 02.03.2012