clusterer.events.add('balloonopen', function (e) {
var cluster = e.get('target'),
activeObject = cluster.state.get('activeObject');
cluster.state.events.add('change', function () {
//do smth
});
});
вопрос тогда меняется, каким методом балуна можно заставить его пересчитать высоту и соответсвенно перемесить тень балуна как нужно, а то у меня в карусели контент разной высоты, высота контента я сделал чтобы менялась через css, а вот с положением тени никак, подскажите пожалуйста.
Сейчас поэкспериментировала с опциями. Вы можете изменять размеры балуна через опции.
Нужно задавать набор опций
cluster.options.set({
balloonHeight: 200,
balloonMaxHeight: 300,
balloonMinHeight: 300
});
(если задавать опции через кластеризатор, то нужно еще дописать префикс "cluster" к названиям опций).
Тогда балун нормально меняет высоту. Только надо учитывать, что нужно обязательно, чтобы значения maxHeight и minHeight были больше, чем height, иначе там тоже появится прокрутка.
1) открытие нового элемента в карусели стало значительно( раза в 4-5) дольше
2) при листании карусели иногда выкидывалась ошибка типа this._Yh undefined (точно не помню переменную) после чего карусель отрубалась и не реагировала на события.
1. balloonopen на кластеризаторе может относиться как к кластеру, так и к отдельной метке - нужно делать дополнительную проверку.
2. когда вы следите за изменением состояния, нужно проверять, какое именно поле состояния изменилось - может быть поменялся какой-нибудь заголовок, и вы будете лишний раз пересчитывать размеры для балуна.
И еще я не очень поняла из примера, как именно у вас подцепляется содержимое балуна к балуну. Можете дать ссылку на пример?