control.RollupButton
Расширяет control.RadioGroup.
Вертикальная группа кнопок в тулбаре.
Конструктор | Поля | События | Методы
Конструктор
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
params | — | Тип: Object|IControl[] Параметры группы или массив кнопок. |
params.items | — | Тип: IControl[] Массив кнопок. |
options | — | Тип: Object Опции элемента управления. |
options.layout | — | Тип: Function|String Макет элемента управления.
В конструктор макета передается объект, содержащий поля:
|
options.position | { top: 5, left: 5 } | Тип: Object Положение элемента управления над картой.
Задается в виде объекта со следующими полями:
|
options.visible | true | Тип: Boolean Признак того, что элемент управления отображается. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
params | — | Тип: Object|IControl[] Параметры группы или массив кнопок. |
params.items | — | Тип: IControl[] Массив кнопок. |
options | — | Тип: Object Опции элемента управления. |
options.layout | — | Тип: Function|String Макет элемента управления.
В конструктор макета передается объект, содержащий поля:
|
options.position | { top: 5, left: 5 } | Тип: Object Положение элемента управления над картой.
Задается в виде объекта со следующими полями:
|
options.visible | true | Тип: Boolean Признак того, что элемент управления отображается. |
Пример:
// Создание пользовательской группы кнопок
// В примере используется jQuery, загруженный с http://yandex.st/jquery/1.6.4/jquery.min.js
var myRollupLayout = ymaps.templateLayoutFactory.createClass(
" <div id='rollup-header'>[if state.expanded]Свернуть[else]Развернуть[endif] </div>" +
// В этом контейнере будут располагаться дочерние элементы.
" <div id='rollup-body'> </div>", {
build: function () {
myRollupLayout.superclass.build.call(this);
this.checkExpandCallback = ymaps.util.bind(this.checkExpanded, this);
$('#rollup-header').bind('click', this.checkExpandCallback);
// Поскольку макет будет перестраиваться много раз из-за
// изменения значения поля state.expanded,
// нужно при каждом перестроении сообщать об изменении контейнера
// дочерних элементов через событие интерфейса IGroupControlLayout.
this.events.fire('childcontainerchange', {
newChildContainerElement: $('#rollup-body').get(0),
oldChildContainerElement: this.childContainerElement
});
this.childContainerElement = $('#rollup-body').get(0);
},
clear: function () {
$('#rollup-header').unbind('click', this.checkExpandCallback);
myRollupLayout.superclass.clear.call(this);
},
// Переопределяем метод, который требует интерфейс IGroupControlLayout.
getChildContainerElement: function () {
return this.childContainerElement;
},
checkExpanded: function () {
// При клике на переключающий элемент проверяем состояние
// элемента управления и генерируем одно из событий интерфейса
// IExpandableControlLayout.
if (this.getData().state.get('expanded')) {
this.events.fire('collapse');
} else {
this.events.fire('expand');
}
}
}),
rollupButton = new ymaps.control.RollupButton({
items: [
new ymaps.control.Button('Киев'),
new ymaps.control.Button('Львов'),
new ymaps.control.Button('Харьков')
]
}, {
layout: myRollupLayout
});
map.controls.add(rollupButton, {right: 5, top: 5});
Поля
Имя | Тип | Описание |
---|---|---|
data | data.Manager | Данные группы. Унаследовано от control.Group. |
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние вертикальной группы.
Имена полей, доступных через метод data.Manager.get:
|
Имя | Тип | Описание |
---|---|---|
data | data.Manager | Данные группы. Унаследовано от control.Group. |
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | data.Manager | Состояние вертикальной группы.
Имена полей, доступных через метод data.Manager.get:
|
События
Имя | Описание |
---|---|
add | Произошло добавление дочернего объекта. Унаследовано от ICollection. |
childcontainerchange | Изменение дом-элемента, в который добавляются дочерние элементы группы.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
Унаследовано от control.Group. |
collapse | Список закрыт. Экземпляр класса Event. |
expand | Список открыт. Экземпляр класса Event. |
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
remove | Произошло удаление дочернего объекта. Унаследовано от ICollection. |
select | Выбран один из элементов группы.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
Унаследовано от control.RadioGroup. |
Имя | Описание |
---|---|
add | Произошло добавление дочернего объекта. Унаследовано от ICollection. |
childcontainerchange | Изменение дом-элемента, в который добавляются дочерние элементы группы.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
Унаследовано от control.Group. |
collapse | Список закрыт. Экземпляр класса Event. |
expand | Список открыт. Экземпляр класса Event. |
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
remove | Произошло удаление дочернего объекта. Унаследовано от ICollection. |
select | Выбран один из элементов группы.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
Унаследовано от control.RadioGroup. |
Методы
Имя | Возвращает | Описание |
---|---|---|
add(item[, positionIndex]) | Добавляет элемент управления в группу. Элемент можно добавлять, передав экземпляр класса, реализующего интерфейс IControl, или по ключу.
Возожные значения ключей:
Унаследован от control.Group. | |
each(callback[, context]) | Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик. Унаследован от control.Group. | |
filter(callback) | Функция для выборки дочерних элементов по условию. Унаследован от control.Group. | |
get() | Returns ссылку на объект контрола, добавленного по ключу или по индексу. Унаследован от control.Group. | |
getAll() | Returns массив дочерних элементов контрола. Унаследован от control.Group. | |
getChildElement(child) | HTMLElement | Возвращает для своего дочернего объекта HTML-элемент, в котором он должен размещаться. Унаследован от IControlParent. |
getContainer() | HTMLElement | Returns контейнер, в который добавляются дочерние элементы контрола. Унаследован от control.Group. |
getIterator() | Returns итератор по коллекции. Унаследован от ICollection. | |
getLength() | Number | Returns количество дочерних элементов. Унаследован от control.Group. |
getMap() | Returns ссылку на карту. Унаследован от IParentOnMap. | |
getParent() | Returns ссылку на родительский объект. Унаследован от IControl. | |
getSelectedIndex() | Number | Returns индекс выбранного элемента либо -1, если ни один элемент не выбран. Унаследован от control.RadioGroup. |
indexOf(childToFind) | Integer | Returns индекс дочернего элемента в группе. Унаследован от control.Group. |
remove(item) | Удаляет элемент управления из группы. Унаследован от control.Group. | |
removeAll() | Удаляет все дочерние элементы из группы. Унаследован от control.Group. | |
setParent(parent) | Устанавливает родительский объект. Унаследован от IControl. |
Имя | Возвращает | Описание |
---|---|---|
add(item[, positionIndex]) | Добавляет элемент управления в группу. Элемент можно добавлять, передав экземпляр класса, реализующего интерфейс IControl, или по ключу.
Возожные значения ключей:
Унаследован от control.Group. | |
each(callback[, context]) | Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик. Унаследован от control.Group. | |
filter(callback) | Функция для выборки дочерних элементов по условию. Унаследован от control.Group. | |
get() | Returns ссылку на объект контрола, добавленного по ключу или по индексу. Унаследован от control.Group. | |
getAll() | Returns массив дочерних элементов контрола. Унаследован от control.Group. | |
getChildElement(child) | HTMLElement | Возвращает для своего дочернего объекта HTML-элемент, в котором он должен размещаться. Унаследован от IControlParent. |
getContainer() | HTMLElement | Returns контейнер, в который добавляются дочерние элементы контрола. Унаследован от control.Group. |
getIterator() | Returns итератор по коллекции. Унаследован от ICollection. | |
getLength() | Number | Returns количество дочерних элементов. Унаследован от control.Group. |
getMap() | Returns ссылку на карту. Унаследован от IParentOnMap. | |
getParent() | Returns ссылку на родительский объект. Унаследован от IControl. | |
getSelectedIndex() | Number | Returns индекс выбранного элемента либо -1, если ни один элемент не выбран. Унаследован от control.RadioGroup. |
indexOf(childToFind) | Integer | Returns индекс дочернего элемента в группе. Унаследован от control.Group. |
remove(item) | Удаляет элемент управления из группы. Унаследован от control.Group. | |
removeAll() | Удаляет все дочерние элементы из группы. Унаследован от control.Group. | |
setParent(parent) | Устанавливает родительский объект. Унаследован от IControl. |
Описание полей
state
{data.Manager} state
- expanded - признак, раскрыт ли список.
Пример:
// Создадим и добавим на карту список, который изначально открыт.
var rollupButton = new ymaps.control.RollupButton();
rollupButton.state.set('expanded', true);
map.controls.add(rollupButton);