Мой первый ответ, по-видимому, не работал, и сейчас я сталкиваюсь с той же проблемой. Вот новый подход:
Leaflet поддерживает событие под названием contextmenu
. Как можно найти в документации к Leaflet здесь .
Срабатывает, когда пользователь нажимает правую кнопку мыши на карте, предотвращает показ контекстного меню браузера по умолчанию, если есть слушатели по этому событию.
Так что теоретически код
marker.on('contextmenu', function(e) {
this.openPopup();
});
должно работать просто отлично. Но, видимо, реализация отстает от документации. В настоящее время (листовка 0.4.5) contextmenu
событие, по- видимому , не все еще поддерживается на маркеры, хотя он отлично работает на объектах полилинии.
Похоже, что работа над этой функцией в ближайшем будущем ведется (см. Обсуждения здесь и здесь ). Так что, я думаю, мы можем только надеяться, что Leaflet быстро поработает над этим и включит событие в следующем выпуске ...
Изменить:
Не обращайте внимания на то, что я сказал о ожидании реализации. Если вы загрузите последнюю ветку разработки и создадите листовку самостоятельно, вы получите полную поддержку contextmenu
событий на маркерах. Удачного кодирования.