我遇到了一个非常烦人的错误,我希望有人可以帮助我。
当我使用单击我的Macbook触控板在Leaflet中创建弹出窗口时,它会打开并保持打开状态。
如果我点击触控板或使用鼠标点击,我可以看到弹出窗口打开但是它会立即消失。
当它消失时似乎被完全删除,因为'leaflet-popup-pane'的div中的内容被删除了。
我已经对mouseup事件进行了一些搜索,以查看代码库中是否有任何奇怪的内容,但我没有遇到任何会导致此问题的内容。
有没有人对正在发生的事情有任何想法?
以下是相关代码:
$map = $("#map")
.on(touch.event.start, onMapTouchStart);
function onMapTouchStart(e) {
var latLng = map.containerPointToLatLng(touch.getPoint(e));
displayAttributes(latLng);
}
function displayAttributes(latLng) {
var coordinates = selectedProjector.toGround(map.latLngToImagePoint(latLng));
$.ajax("GetFeatureAttributes", {
data: { x: coordinates[0], y: coordinates[1] },
success: function (results) {
var c = coordSys.inverse(coordinates);
var popupHTML = [];
$.each(results, function (index) {
var attributes = JSON.parse(results[index].attributes);
var layer = referenceFeatureLayers[results[index].referenceCollectionId];
popupHTML.push("<div class='AttrBlock'>");
popupHTML.push("<div class='AttrTitle' style='color: " + layer.color + "'>" + layer.name + "</div>");
for (var key in attributes) {
if (attributes.hasOwnProperty(key)) {
popupHTML.push("<div class='AttrItem'><span class='AttrKey'>" + key + ":</span> " + attributes[key] + "</div>");
}
}
popupHTML.push("</div>");
});
var icon = L.icon( { iconUrl: 'Images/MarkerSmall.png' } );
var marker = L.marker(latLng, { icon: icon }).addTo(map);
var options =
{
maxWidth: 300,
minWidth: 250,
maxHeight: 300,
autoPan: true,
closeButton: true,
autoPanPadding: [45, 90]
};
marker.bindPopup(popupHTML.join(""), options).openPopup();
}
});
}