Leaflet: Manipulador de clique simples não funciona para a camada Geojson no Leaflet 1.0.0-rc.3

Criado em 26 ago. 2016  ·  4Comentários  ·  Fonte: Leaflet/Leaflet

Estou fazendo algo semelhante a http://jsfiddle.net/tator/em9cLfk4/4/

No entanto, isso não está relacionado ao clique da camada borbulhado para o manipulador de cliques do mapa. É sobre o clique da camada simplesmente não ser acionado com o código que está funcionando corretamente para 0.7.7.

Reduzi meu código para apenas a camada base do bloco + uma camada de sobreposição para garantir que não haja problemas de zindex de ordem de camada.

O map.on("click") ainda é acionado corretamente, mas não para a camada GeoJson.

function onEachFeatureHandler(feature, layer){
            layer.on('click', function(e){
                     alert("click");
           });
}

overlay = L.geoJson(GeoJSON, {
       onEachFeature: onEachFeatureHandler
});

Eu também tentei duas maneiras diferentes de fazer o layer.on("click"), ou clique como uma string ou adicione um {"click": handlerFuncName}. Não faz a diferença como esperado.

Eu tentei adicionar a camada de base antes/depois da sobreposição e nada mudou. Eu também removi o manipulador de cliques no mapa para evitar um conflito de eventos. Então, acabo com um mapa com apenas tile + overlay e um manipulador de eventos de clique, mas ainda assim, nada será acionado. O cursor do mouse indica que a camada não é clicável.

Também modifiquei as cores da sobreposição para garantir que ela fosse adicionada corretamente ao objeto do mapa. Está em cima do tilelayer.

Isso está acontecendo no Chrome v52 e Safari 9 mais recentes no Mac.

Depois de tentar quase 4 horas nisso... eu suspeito que pode ser algo idiota no meu código ou há algumas mudanças de API que eu perco no changelog. Eu apreciaria se você pudesse oferecer algumas dicas sobre o que eu poderia estar fazendo de errado. Qualquer insight seria apreciado.

Comentários muito úteis

@mourner Depois de pensar um pouco, percebo que não atualizei o css para o mais recente. Isso pode ter contribuído para que o nível zIndex não estivesse correto ou não permitido algum evento de clique. Agora tudo parece estar normal apenas atualizando o css para o mais recente. Fechando o assunto.

Todos 4 comentários

Você pode configurar um caso de teste mínimo exato no JSFiddle ou Leaflet Playground reproduzindo o problema?

@mourner Vou tentar um playground com um Geojson simples e ver o que acontece. Eu não tive o código do manipulador de cliques quebrado em exemplos muito isolados. Eu até depurei para o objeto de camada no depurador ... o manipulador de cliques é definitivamente adicionado. Um evento de clique é acionado no bloco <img> quando clico nas camadas.

Não consigo pensar em nenhum outro fator que afete isso.

@mourner acabou de tentar com rc3 no playground, a camada de geojson bruta ainda funciona como pretendido ...

@mourner Depois de pensar um pouco, percebo que não atualizei o css para o mais recente. Isso pode ter contribuído para que o nível zIndex não estivesse correto ou não permitido algum evento de clique. Agora tudo parece estar normal apenas atualizando o css para o mais recente. Fechando o assunto.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

broofa picture broofa  ·  4Comentários

edmsgists picture edmsgists  ·  3Comentários

gdbd picture gdbd  ·  3Comentários

arminghm picture arminghm  ·  3Comentários

walterfn2 picture walterfn2  ·  4Comentários