Javascript 使用外部GeoJSON创建Mapbox弹出窗口时出现问题

Javascript 使用外部GeoJSON创建Mapbox弹出窗口时出现问题,javascript,leaflet,mapbox,Javascript,Leaflet,Mapbox,我有一个带有外部GeoJSON和搜索框功能的地图。我在显示弹出窗口时遇到问题。标记将显示,过滤器当前工作正常。我看了几条建议和建议。这似乎是一个简单的解决办法,但我还没有得到任何建议的解决方案的工作。我想我遗漏了一些小细节。非常感谢您的帮助 这是我的GeoJSON变量和我一直在尝试的弹出窗口 var locations = L.mapbox.featureLayer() .setGeoJSON(geojson) .addTo(map) .on('ready', function(){

我有一个带有外部GeoJSON和搜索框功能的地图。我在显示弹出窗口时遇到问题。标记将显示,过滤器当前工作正常。我看了几条建议和建议。这似乎是一个简单的解决办法,但我还没有得到任何建议的解决方案的工作。我想我遗漏了一些小细节。非常感谢您的帮助

这是我的GeoJSON变量和我一直在尝试的弹出窗口

var locations = L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(map)
    .on('ready', function(){

        locations.eachlayer(function(layer){
            var prop = layer.feature.properties;
            var popup = '<b>' + prop.state + '</b>';
                locations.bindPopup(popup);

    })

 })
.addTo(map);
var locations=L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(地图)
.on('ready',function(){
位置。每个层(功能层){
var prop=layer.feature.properties;
var popup=''+prop.state+'';
位置。bindPopup(弹出窗口);
})
})
.addTo(地图);

您可以删除“就绪”回调,只需执行以下操作

var locations = L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(map)

locations.eachLayer(function (layer) {
  var prop = layer.feature.properties;
  var popup = '<b>' + prop.state + '</b>';
  layer.bindPopup(popup);
})
var locations=L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(地图)
位置。每个层(功能层){
var prop=layer.feature.properties;
var popup=''+prop.state+'';
图层绑定弹出窗口(弹出窗口);
})

感谢您的帮助@snkashis,但这并没有解决问题。我收到了Mapbox的回复,并给出了有效的解决方案。他们告诉我,在使用过滤器时,我需要使用“layeradd”参数。他们提供的解决方案如下

var locations = L.mapbox.featureLayer()
  .setGeoJSON(geojson)
  .addTo(map);

locations.on('layeradd', function(e){
  var prop = e.layer.feature.properties;
  var popup = '<b>' + prop.state + '</b>';
  e.layer.bindPopup(popup);
});
var locations=L.mapbox.featureLayer()
.setGeoJSON(geojson)
.addTo(地图);
位置。在('layeradd',功能(e){
var prop=e.layer.feature.properties;
var popup=''+prop.state+'';
e、 图层绑定弹出窗口(弹出窗口);
});