小册子弹出窗口没有打开特定标记

时间:2015-07-22 21:22:42

标签: javascript leaflet

使用leaflet时,我在向地图添加图层时调用以下函数。此功能为每个功能添加弹出窗口。

当我点击它们时它们会起作用,但我无法让bindPopup.openPopup()工作,所以它会打开而不会被点击。

没有任何错误,但弹出窗口没有被点击就打开了。

var popupToOpen = null;
var clickedLocationId = 0;
function onEachFeature(feature, layer) {
    if (feature.properties && feature.properties.UserName) {        
        if (feature.properties.MarkerId == clickedLocationId) {            
          layer.bindPopup("<div id='unlockLocationId'>" + feature.properties.MarkerId + "</div><div>" + feature.properties.UserName + "</div>").openPopup();
        } else {
            layer.bindPopup("<div id='unlockLocationId'>" + feature.properties.MarkerId + "</div><div>" + feature.properties.UserName + "</div>");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我已经尝试过你尝试的方式,但弹出窗口并没有打开。好吧,你可以尝试以另一种方式打开弹出窗口。

创建一个函数,在其中迭代geojson图层并在id匹配时打开弹出窗口。这是函数

function openMarkerPopup(id){
    geojson.eachLayer(function(feature){
        if(feature.feature.properties.id==id){
            feature.openPopup();
        }

    });
}

只需将所需的ID传递给此功能即可。

openMarkerPopup(108);

这是一个有效的fiddle