我对Javascript和Leaflet相当陌生,如果我在这里遗漏了一些明显的东西,那么道歉,但是......
我尝试使用Leaflet在地图上叠加一系列线条和点,我想在用户点击其中一条线或点时打开侧边栏。由于侧边栏的内容会根据用户点击的行或点而有所不同,因此我尝试将onEachFeature用于鼠标事件,因为我可以显示与相应功能相关的信息。
但问题是,似乎永远不会调用onEachFeature。这是我的代码:
function sortAndVisualizeNetwork(){
$.ajax({
url: "d3/networkdata.json",
async: false,
dataType: "json",
success: function(data){
edges = L.geoJson(data, {
filter: function(feature){
if (includeFeature(feature)){
visualizeFeature(feature);
}
},
onEachFeature: function(feature, layer){
layer.on("click", function(e){
//write stuff to sidebar depending on the feature
sidebar.show();
});
}
})
}
})
}
我尝试用简单的警报替换layer.on代码,但没有一个出现,所以我知道onEachFeature没有被调用。但是,过滤器中的功能工作得很好。
我想知道这是否与所有嵌套在同步ajax调用中的事实相关?