我正在尝试在传单地图中创建一个动态弹出窗口,并在其中放置了一个链接。当您单击链接时,我希望在页面上显示一个预定义的容器,该容器显示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(" :)"))
上面所有代码的问题是,它会产生无限循环,并且消息不取决于属性的值。
希望可以为您提供帮助