Клуб API Карт

Найдено на тему «click»:
При клике на карту, как определить что клик был на гео объекте а не на пустом месте карты где нет меток?
tairov.87
8 ноября 2017, 15:14
    // Вешаем слушателя клика на коллекцию для меток
    placemarkcollection.events.add('click', function (e) {
        // Метка, на которой сработало событие
        var target = e.get('target');
        // Проверяем пресет метки - если его нет, ставим зелёный, если есть - делаем unset
        if(target.options.get('preset')) {
         target.options.unset('preset');
        } else {
         target.options.set('preset', 'islands#darkGreenCircleIcon');
        }
        document.getElementById("placemarkID").value = target.properties.get('iconContent');
        document.getElementById("placemarkPreset").value = target.options.get('preset');
    });

При клике на метку, получаю id метки. Но если просто кликнуть по карте, то снова получаю id метки по которой кликнул в последний раз. Как игнорировать такое событие?

2 комментария
API 2.1,click,placemark
Смена цвета метки при клике и возврат на изначальный цвет при повторном клике
tairov.87
6 ноября 2017, 15:06

Добрый день! Помогите пожалуйста, на карте вывожу метки для доставки товаров, по умолчанию они красные. Оператор должен выбирать метки кликом, они должны становиться зелеными, это у меня получилось. Не знаю как сделать так, чтобы при повторном клике уже на зеленую метку она вновь стала красной.

function addplacemarkrs(coord1, coord2, iContent, hContent) {
	placemark = new ymaps.Placemark([coord1, coord2], {
		iconContent: iContent,
		hintContent: hContent  
		}, {
		preset: 'islands#redCircleIcon'
		})
		placemarkcollection.add(placemark);
		
        placemark.events.add('click', function (e) {
        // Меняем цвет текущей метки
        e.get('target').options.set('preset', 'islands#darkGreenCircleIcon');
        });
}

2 комментария
метка,API 2.1,событие,click
Как распознать, из какой части шаблона иконки метки пришел клик?
Melody Nelson
16 октября 2017, 15:30

Есть кастомный шаблон иконки, при клике на определенный элемент которого хотелось бы игнорировать стандартный обработчик клика по этой иконке. Как их различить?

В objectManager.objects.events.add("click", function (e){}) внутри e можно найти target (e._sourceEvent.originalEvent.domEvent.originalEvent.target), но это всегда ".ymaps-2-1-55-events-pane", перехватывающий событие. Возможно ли как-то получить элемент шаблона, по которому кликнули, в обход events-pane?

2 комментария
event,templateLayoutFactory,iconLayout,click
Клик по карте внутри круга с заливкой.
Александр В
20 мая 2017, 11:22


Подскажите пожалуйста как убрать клик круга, чтобы можно было кликать по карте.
Хочу добавлять новые точки и внутри круга.

Заранее спасибо.

2 комментария
circle,click ,event,event disable,Placemark
При клике на мобильном устройстве передаются некорректные координаты
Георгий М.
11 апреля 2017, 10:02

Здравствуйте,

на Android в браузере Chrome 57 иногда при тапе на точку карты передаются некорректные координаты. К примеру, для выбора точки требуется кликнуть на 200px ниже и правее. На десктопе не воспроизводится никогда.

К сожалению, стабильно воспроизвести не могу. Можете подсказать, в чём может быть причина такого поведения?

6 комментариев
click ,touch,неверные координаты
Открытие балуна на моб.
Valentin
19 декабря 2016, 14:22

Подскажите пожалуйста, почему на маленьких экранах, а так же на моб. балун открывается не снизу, как у вас во всех примерах и картах, а на над самой точкой? 

Привожу код открытия балуна:

// Проверяем, есть ли у выбранного объекта содержимое балуна
function hasBalloonData(objectId) {
	return objectManager.objects.getById(objectId).properties.balloonContent
}
//Получаем данные и устанавливаем содержимое балуна
function setBalloonData(objectId) {
	if (!hasBalloonData(objectId)) {
	getBalloonData(objectId).done(function (data) {
        // getBalloonData - ajax запрос к серверу по получению данных балуна
		var object = objectManager.objects.getById(objectId);
		object.properties.balloonContent = data;
		// Открываем балун на этом элементе
		var objectState = objectManager.getObjectState(objectId);
		if (objectState.isClustered) {
			// Если это кластер						  objectManager.clusters.balloon.open(objectState.cluster.id);
		} else {
			// Если обычный объект
			objectManager.objects.balloon.open(objectId);
		}
		});
	}
}

Спасибо

1 комментарий
boundschange,click,objectManager
Yandex Maps и jQuery Tabs
bpirozhok
31 октября 2016, 16:45

Всем доброго времени суток! 

Суть проблемы в следующем: 
на сайте размещено всплывающее окно с картами Яндекс и вкладками наjQuery. При нажатии на tab с филиалами , меняется адрес и перемещается на картах соответсвенно. 
Заказчик захотел, чтобы была вкладка со всеми филиалами на одной карте, и при нажатии на иконку происходило открытие соответсвующей вкладки на jQuery. 
Подскажите как в javascript'e сослаться на jQuery вкладку, при событии "click". 

Заранее спасибо всем откликнувшимся! 

На всякий случай прилагаю ссылку на сайт: www.sig.by  (Места занятий).

javascript,jQuery,событие,click,вкладки
[РЕШЕНО] Как повесить событие "click" на объект из списка внутри кластера?
Александр
29 сентября 2016, 14:53

Здравствуйте. Подскажите пожалуйста, каким образом я могу повесить событие "click" на каждый элемент в списке внутри кластера?

Я вешал событие на "balloonContentHeader" - создавал элемент с классом и при открытии кластера вешал событие на каждый элемент из списка. Проблема в том, что я использую "id" для каждого элемента из списка и таким образом - этот id дублируется в правой части списка (header). Пришлось засунуть этот id внутрь каждого объекта и вытаскивать его при видимости в кластере.

e.get('target').state.get('activeObject').properties.get('identifier')

Поэтому мне нужен другой вариант объявления события click для элементов из списка.

8 комментариев
click,claster,событие,placemark