2013-01-11 9 views
5

Czy można w Ulotce zdefiniować znacznik lub polilinię za pomocą {klikalny: false}, aby kliknięcie było przekazywane do elementów znajdujących się pod spodem - czy to mapa, czy klikalna geometria obiekt?Znaczniki i poliliny po kliknięciu w Ulotce

W tej chwili rozwiązuję ten problem przez kliknięcie znacznika/poliliny i przekazywanie zdarzenia samemu. Ale to prowadzi do tego, że kursor myszy zawsze pokazuje się jako symbol ręki. Idealnie, kursor myszy powinien wyglądać jak normalny wskaźnik lub ręka, w zależności od tego, czy kliknięcie pod markerem/polilinią jest klikalne.

+0

dlaczego Do not po prostu spróbować zamiast pytać? Odpowiedź brzmi "tak", to jest zachowanie '{clickable: false}', jak zdefiniowano w dokumentacji –

+2

Ponieważ próbowałem go przed pytaniem? Twoja odpowiedź jest po prostu błędna. W moim przypadku testowym mam obiekt polilinii, który można kliknąć i obiekt o wielu poliliniach bezpośrednio nad nim (skutecznie podświetlając niektóre części obłoku), który nie jest klikalny. A gdy mysz znajduje się nad wieloligolią, nie można kliknąć poniżej polilinii. – shiin

+0

pokaż swoją walizkę –

Odpowiedz

0

To może nie być odpowiedź, której szukasz, ale możesz użyć grup funkcji, aby wszystkie klikalne polilinie znalazły się na pierwszym planie, aby akcja została ujawniona.

var lg_noclick = new L.FeatureGroup().addTo(map); 
var lg_click = new L.FeatureGroup().addTo(map); 
// Add lines 
lg_click.bringToFront(); 

aktualizowane fiddle

Także jeśli możesz sobie pozwolić, aby znać swoje wiersze przed ręką, prawidłowa kolejność podczas dodawania linii będzie działać jak również.

0

Wiem, że to nie jest idealne, ale w mojej sytuacji wszystko dobrze pasuje, więc może być również dobre dla ciebie.

Ukrywa ikonę i przynosi go z powrotem po drugie stosując mouseenter i mouseleave zdarzeń:

$('.leaflet-marker-icon').mouseenter(function() { 
    $(this).hide(); 
}); 

$('.leaflet-marker-icon').mouseleave(function() { 
    $(this).delay(1000).show(0); 
}); 
Powiązane problemy