Как сделать чтоб каждая метка при ховере брала свою картинку?
Добавляю на карту метки и для каждой своё изображение для метки и для ховера тоже. У меня при наведении на любую метку изображение ставиться одно и тоже. Как сделать чтоб у каждой метки своё брала?
var myCollection = new ymaps.GeoObjectCollection({}); for (i in data.item) { var layout = ymaps.templateLayoutFactory.createClass('<div><img src="..."/></div>'); var layout_hover = ymaps.templateLayoutFactory.createClass('<div><img src="..."/></div>'); var myPlacemark = new ymaps.Placemark([lat, lng], {...}, { iconLayout: layout, iconShape: { type: 'Circle', coordinates: [0, 0], radius: 25 } });) myPlacemark.events .add('mouseenter', function (e) { e.get('target').options.set("iconLayout", layout_hover); }) .add('mouseleave', function (e) { e.get('target').options.set("iconLayout", layout); }); myCollection.add(myPlacemark); } myMap.geoObjects.add(myCollection); Похоже берёт layout последний который в цикле. |
milov,
замените for на forEach |
Цитата:
|
на карту выводится правильно, у каждой метки своя картинка. Проблема с событиями mouseenter mouseleave
|
milov,
где код? |
код в первом посте.
сделать в jsfidle ? |
milov,
forEach сделайте :-? |
milov,
var myCollection = new ymaps.GeoObjectCollection({}); data.item.forEach(function(el, i) { var layout = ymaps.templateLayoutFactory.createClass('<div><img src="..."/></div>'); var layout_hover = ymaps.templateLayoutFactory.createClass('<div><img src="..."/></div>'); var myPlacemark = new ymaps.Placemark([lat, lng], {...}, { iconLayout: layout, iconShape: { type: 'Circle', coordinates: [0, 0], radius: 25 } }); myPlacemark.events .add('mouseenter', function (e) { e.get('target').options.set("iconLayout", layout_hover); }) .add('mouseleave', function (e) { e.get('target').options.set("iconLayout", layout); }); myCollection.add(myPlacemark); }) myMap.geoObjects.add(myCollection); |
рони,
именно так и сделал. проблема осталась как я и писал выше. |
milov,
больше идей нет. |
Часовой пояс GMT +3, время: 01:40. |