Fix popup hovering (bubbling) 2
This commit is contained in:
@@ -543,24 +543,11 @@ function initSpotMessages(aoMessages, aoTracks, bNoFeed) {
|
||||
|
||||
oLayer
|
||||
.bindPopup($Tooltip[0])
|
||||
.on('mouseover click', function(e) {
|
||||
var oLatLng = L.GeometryUtil.closest(self.tmp('map'), e.sourceTarget, e.latlng);
|
||||
e.target.getPopup().setLatLng(oLatLng).openOn(self.tmp('map'));
|
||||
|
||||
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
|
||||
var oPointStart = self.tmp('map').latLngToLayerPoint(asTrailMarkers.start.getLatLng());
|
||||
var oPointEnd = self.tmp('map').latLngToLayerPoint(asTrailMarkers.end.getLatLng());
|
||||
if(oPointStart.distanceTo(oPointEnd) > 200) {
|
||||
asTrailMarkers.start.addTo(self.tmp('map'));
|
||||
asTrailMarkers.end.addTo(self.tmp('map'));
|
||||
}
|
||||
.on('click', function(e) {
|
||||
toggleSoftPopup(e, 'open');
|
||||
})
|
||||
.on('mouseout', function(e) {
|
||||
e.target.closePopup();
|
||||
|
||||
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
|
||||
asTrailMarkers.start.remove();
|
||||
asTrailMarkers.end.remove();
|
||||
.on('popupclose', function(e) {
|
||||
toggleSoftPopup(e, 'close');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -644,6 +631,30 @@ function initSpotMessages(aoMessages, aoTracks, bNoFeed) {
|
||||
*/
|
||||
}
|
||||
|
||||
function toggleSoftPopup(e, sMode) {
|
||||
switch(sMode) {
|
||||
case 'open':
|
||||
var oLatLng = L.GeometryUtil.closest(self.tmp('map'), e.sourceTarget, e.latlng);
|
||||
var oPopup = e.target.getPopup();
|
||||
if(!oPopup.isOpen()) oPopup.setLatLng(oLatLng).openOn(self.tmp('map'));
|
||||
|
||||
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
|
||||
var oPointStart = self.tmp('map').latLngToLayerPoint(asTrailMarkers.start.getLatLng());
|
||||
var oPointEnd = self.tmp('map').latLngToLayerPoint(asTrailMarkers.end.getLatLng());
|
||||
if(oPointStart.distanceTo(oPointEnd) > 200) {
|
||||
asTrailMarkers.start.addTo(self.tmp('map'));
|
||||
asTrailMarkers.end.addTo(self.tmp('map'));
|
||||
}
|
||||
break;
|
||||
case 'close':
|
||||
//e.target.closePopup();
|
||||
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
|
||||
asTrailMarkers.start.remove();
|
||||
asTrailMarkers.end.remove();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
function next(iCurrTrack, iCurrIndex, iCurrOffset, iCurrZoom) {
|
||||
var aoTracks = oSpot.tmp('tracks');
|
||||
|
||||
Reference in New Issue
Block a user