StateController (далее SC) логически разбит на два независимых процесса: процесс установки значения состояния и процесс обхода дерева нод. Состояние может изменяться в процессе работы несколько раз, может вообще не устанавливаться.
Состояния
Состоянием является имя переменной в процессе установки значения состояния, или идентификатор события в процессе обхода дерева нод. Синтаксис состояния должен удовлетворять правилам создания JS-переменной. При установке значения состояния создается свойство объекта states экземпляра SC. При обходе дерева нод, имя состояния используется в качестве имени события.
Идентификатор ноды, нода или массив нод или идентификаторов
* value
Новое значение состояния
* propagation
Фильтр нод, на которые распространяется функция реагирования обходчика по дереву нод.
По умолчанию значение равно "*", т.е. обходчик обходит все ноды внутри контейнера.
Значение parent означает распространение действия обходчика только на ноду контейнера.
Значение childNodes означает распространение действия обходчика на ноду контейнера и на все дочерние ноды контейнера.
Можно указывать названия нод через запятую, в верхнем регистре, если необходимо отфильтровать только ноды с определенным именем. Например A,SPAN,DIV. При этом распространение действия обходчика будет на ноду контейнера и на все ноды с указанными именами.
* depth
Глубина погружения в дереве нод среди дочерних элементов контейнера. Действует только на параметр распространения childNodes.
* levels
Уровни состояний, написанные через запятую. По умолчанию значение levels равно "all".
* data
Дополнительные данные, которые могут быть переданы вместе с событием.
addHandler
Описание
Регистрирует обработчик в SC.
Параметры вызова
* handlerName
Имя обработчика
* function
Код обработчика
Обработчики SC
Синтаксис
Для присвоения обработчика или нескольких обработчиков любой ноде используется атрибут SC. Значение атрибута будет обрабатываться контроллером состояний.
Каждая директива отделяется друг от друга символом "|". Директива состоит из уровня, имени JS-функции, имени состояния-события, и дополнительных параметров.
Уровень должен быть числовым значением.
Функция-обработчик - имя зарегистрированного обработчика, который будет исполнен при определенных условиях.
Дополнительные параметры не должны содержать символов ":", "*", "|". Желательно использовать синтаксис js-переменных или использовать числа в качестве дополнительных параметров.
объект с дополнительными параметрами запуска, которые были указаны в параметре data
scData имеет следующую структуру:
* args
массив аргументов, которые передаются обработчику
* func
имя функции-обработчика
* level
уровень запуска
* state
имя состояния, на которое реагирует обработчик
Принцип работы
Состояние логически является переменной и событием одновременно. Имя состояния выступает типом события. Установка значения переменной состояния никак не влияет на обход дерева нод.
Запуск обхода нод производится для какого-либо участка дерева нод документа. Первым проверяется нода контейнера, потом остальные ноды внутри указанного контейнера. Ограничить зону "видимости" обходчика можно с помощью параметра запуска propagation. У каждой ноды ищется атрибут SC, и, если атрибут найден, разбирается значение данного атрибута. Потом выполняются те обработчики, имя состояния которых соответствует имени события, при этом учитываются параметры level и depth.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
s0rr0w
Введение
StateController (далее SC) логически разбит на два независимых процесса: процесс установки значения состояния и процесс обхода дерева нод. Состояние может изменяться в процессе работы несколько раз, может вообще не устанавливаться.
Состояния
Состоянием является имя переменной в процессе установки значения состояния, или идентификатор события в процессе обхода дерева нод. Синтаксис состояния должен удовлетворять правилам создания JS-переменной. При установке значения состояния создается свойство объекта states экземпляра SC. При обходе дерева нод, имя состояния используется в качестве имени события.
Описание объекта
Публичные методы
set
Описание
Устанавливает значение переменной состояния.
Параметры вызова
* name
имя переменной состояния
* value
значение переменной состояния
get
Описание
Возвращает значение переменной состояния.
Параметры вызова
* name
имя переменной состояния
launch
Описание
Запускает обход дерева.
Параметры вызова
* stateObject1
* stateObject2
...
* stateObject_n
Где stateObj = { stateName: { c: container[, v: value, l: levels, p: propagation, d: depth, data: data] } }
* stateName
Имя события
* container
Идентификатор ноды, нода или массив нод или идентификаторов
* value
Новое значение состояния
* propagation
Фильтр нод, на которые распространяется функция реагирования обходчика по дереву нод.
По умолчанию значение равно "*", т.е. обходчик обходит все ноды внутри контейнера.
Значение parent означает распространение действия обходчика только на ноду контейнера.
Значение childNodes означает распространение действия обходчика на ноду контейнера и на все дочерние ноды контейнера.
Можно указывать названия нод через запятую, в верхнем регистре, если необходимо отфильтровать только ноды с определенным именем. Например A,SPAN,DIV. При этом распространение действия обходчика будет на ноду контейнера и на все ноды с указанными именами.
* depth
Глубина погружения в дереве нод среди дочерних элементов контейнера. Действует только на параметр распространения childNodes.
* levels
Уровни состояний, написанные через запятую. По умолчанию значение levels равно "all".
* data
Дополнительные данные, которые могут быть переданы вместе с событием.
addHandler
Описание
Регистрирует обработчик в SC.
Параметры вызова
* handlerName
Имя обработчика
* function
Код обработчика
Обработчики SC
Синтаксис
Для присвоения обработчика или нескольких обработчиков любой ноде используется атрибут SC. Значение атрибута будет обрабатываться контроллером состояний.
Синтаксис scHandlers:
где directive
Каждая директива отделяется друг от друга символом "|". Директива состоит из уровня, имени JS-функции, имени состояния-события, и дополнительных параметров.
Уровень должен быть числовым значением.
Функция-обработчик - имя зарегистрированного обработчика, который будет исполнен при определенных условиях.
Дополнительные параметры не должны содержать символов ":", "*", "|". Желательно использовать синтаксис js-переменных или использовать числа в качестве дополнительных параметров.
Пример использования
Обработчики JS
Обработчикам передаются следующие параметры:
* node
ссылка на ноду, которая содержит обработчик
* scData
объект с инициализирующими параметрами
* execOptions
объект с дополнительными параметрами запуска, которые были указаны в параметре data
scData имеет следующую структуру:
* args
массив аргументов, которые передаются обработчику
* func
имя функции-обработчика
* level
уровень запуска
* state
имя состояния, на которое реагирует обработчик
Принцип работы
Состояние логически является переменной и событием одновременно. Имя состояния выступает типом события. Установка значения переменной состояния никак не влияет на обход дерева нод.
Запуск обхода нод производится для какого-либо участка дерева нод документа. Первым проверяется нода контейнера, потом остальные ноды внутри указанного контейнера. Ограничить зону "видимости" обходчика можно с помощью параметра запуска propagation. У каждой ноды ищется атрибут SC, и, если атрибут найден, разбирается значение данного атрибута. Потом выполняются те обработчики, имя состояния которых соответствует имени события, при этом учитываются параметры level и depth.
Link to comment
Share on other sites
0 answers to this question
Recommended Posts