Работа с классовыми идентификаторами
Классовые идентификаторы являются очень важной частью компонентов, так как на их основе строится весь внешний вид.
Для взаимодействия с ними есть несколько методов. Названия методов говорят сами за себя.
bool hasClass(const string& className) const;
Component* removeClass(const string& className);
Component* addClass(const string& className);
Component* toggleClass(const string& className);
В качестве примера, когда может понадобиться взаимодействия с классовыми идентификаторами, это создание компонента для Checkbox
в котором смена картинки может происходить из-за смены классового идентификатора с unchecked
на checked
и обратно.
Получение компонентов по классовому идентификатору
Как уже было описано ранее для доступа к компоненту используется его идентификатор. Но доступ к элементу можно получить и по классовому идентификатору, но с некоторыми оговорками.
Так как один и тот же классовый идентификатор может быть у нескольких компонентов, то по классовому идентификатору будет получена коллекция компонентов.
Для получения коллекции используется метод getElementsByClassName
:
Components getElementsByClassName(const string& className);
Класс Components
является оберткой над коллекцией компонентов. Над коллекцией можно производить следующие действия:
Установить каждому элементу коллекции одинаковый прослушиватель с помощью метода
addEventListener
, который полностью повторяет метод классаComponent
;Вызвать для каждого элемента коллекции некоторую функцию обратного вызова с передачей первым параметром указателя на текущий элемент коллекции с помощью метода
each
void each(function< void(Component* sender)> callback);
Получить компонент по номеру с помощью метода
at
илиоператора []
:Component* at(size_t index); Component* operator[](size_t index);
Получить размер коллекции с помощью метода
size
:size_t size();
Last updated
Was this helpful?