Я пытаюсь создать динамическое всплывающее окно в моей карте листовки, в которой я поместил ссылку. Когда вы нажимаете на ссылку, я бы хотел, чтобы на странице появился предопределенный контейнер, который отображает определенные атрибуты из слоя GeoJSON.
Мне удалось заставить всплывающее окно работать и ссылку. Контейнер также появляется, но независимо от того, что я пробую, текст в контейнере остается прежним.
Слой многоугольника, к которому привязано всплывающее окно, выглядит следующим образом:
var container = $('<div />');
var poly = new L.GeoJSON.AJAX("polygons.geojson", {
style: {"color": "red",
"weight": 5,
"opacity": 0.65},
onEachFeature: function(feature, layer){
container.on('click', '.smallPolygonLink', function() {
if (feature.properties.attribute1 == 'value1') {
alert("This is one message");
}
else if (feature.properties.attribute1 == 'value2'){
alert("this is another message");
}
});
}
});
Предполагается, что контейнер должен быть заполнен одной из двух строк в зависимости от значения. Следующий код является содержимым всплывающего окна, которое, кажется, работает:
container.html("This is a link: <a href='#' class='smallPolygonLink'>Click me</a>.");
container.append($('<span class="bold">').text(" :)"))
Проблема со всем приведенным выше кодом заключается в том, что он создает бесконечный цикл, и сообщение не зависит от значения атрибута.
Надеюсь, что вы можете помочь