Исходник: http://ymaps.narod2.ru/ex
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Примеры. Почему setContent срабатывает дважды?</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://api-maps.yandex.ru
<script type="text/javascript">
// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]) ;
// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10) ;
// Создание метки
placemark = new YMaps.Placemark(map.getCenter(), {style: {
iconStyle : {
template : new YMaps.LayoutTemplate(PlacemarkLayout)
}
}}) ;
// Добавление нужной информации
placemark.setIconContent('метка 1') ;
// Добавление новой метки на карту
map.addOverlay(placemark) ;
// Добавление нужной информации
placemark.setIconContent('метка 2') ;
// Макет для метки
function PlacemarkLayout () {
var element = YMaps.jQuery('<div class="MyPlacemark"/>') ;
this.onAddToParent = function (parent) {
element.appendTo(parent) ;
}
this.onRemoveFromParent = function () {
element.remove() ;
}
this.update = function () {
console.log('update') ;
}
this.setContent = function (content) {
console.log('setContent:', content._text) ;
}
}
}) ;
</script>
</head>
<body>
<div id="YMapsID" style="height: 500px;"></div>
</body>
</html>
На выходе:
setContent: метка 1
setContent: метка 2
setContent: метка 2
update
И как получить доступ к содержимому, устанавливаемому методом setContent(), не обращаясь к _text?