Minha primeira resposta aparentemente não estava funcionando e agora estou enfrentando o mesmo problema. Aqui está uma nova abordagem:
Folheto suporta um evento chamado contextmenu
. Conforme encontrado na documentação do evento do folheto aqui .
Disparado quando o usuário pressiona o botão direito do mouse no mapa, impede que o menu de contexto do navegador padrão seja exibido se houver ouvintes nesse evento.
Então, teoricamente, o código
marker.on('contextmenu', function(e) {
this.openPopup();
});
deve funcionar muito bem. Mas, aparentemente, a implementação está atrasada na documentação. A partir de agora (Folheto 0.4.5) contextmenu
, aparentemente, o evento ainda não é suportado em marcadores, embora funcione perfeitamente em objetos de polilinha.
Parece haver trabalho em andamento para ativar esse recurso em um futuro próximo (consulte as discussões aqui e aqui ). Então, acho que podemos esperar que o Leaflet trabalhe nisso rapidamente e possibilite o evento no próximo lançamento ...
Edit:
desconsidere o que eu disse sobre esperar pela implementação. Se você baixar o ramo principal de desenvolvimento mais recente e criar o folheto, você terá suporte total para contextmenu
eventos nos marcadores. Feliz codificação.
fgysin restabelecer Monica
fonte
Tente esta função interna:
Deveria fazer o truque.
PS: Nunca encontrei isso em nenhuma documentação, mas o vi usado em um patch. Use por sua conta e risco. ;)
Edit: Eu também encontrei esta função interna
O que parece ser o mesmo
event.preventDefault()
que o jQuery.fonte
L.DomEvent.preventDefault(event);
. Pelo que vi (olhando a fonte do Leaflet.js), isso deve ser muito semelhante aopreventDefault()
fornecido pelo jQuery ... Experimente! :)Aliás, tenho uma solução para interromper o evento.
Por exemplo, se um evento for criado assim -
map.on("click", onMapClick);
, o evento poderá ser parado com este código -map.off("click", onMapClick);
fonte