Javascript 打开带有html生成的外部链接的弹出窗口

Javascript 打开带有html生成的外部链接的弹出窗口,javascript,leaflet,Javascript,Leaflet,我(通过html)创建了一个链接列表,其中包含通过PHP从数据库生成的ID 这些链接与在地图上绘制的geoJson中生成的数据相同 var geojson = L.geoJson(geojsonSample, { pointToLayer: function(feature, latlng) { var smallIcon = new L.Icon({ iconSize: [50, 50],

我(通过html)创建了一个链接列表,其中包含通过PHP从数据库生成的ID

这些链接与在地图上绘制的geoJson中生成的数据相同

var geojson = L.geoJson(geojsonSample, {

            pointToLayer: function(feature, latlng) {
                var smallIcon = new L.Icon({
                     iconSize: [50, 50],
                     iconAnchor: [13, 27],
                     popupAnchor:  [1, -24],
                     autoPanPadding: [30,30],

                     iconUrl: feature.properties.icon.iconUrl


                     });
                return L.marker(latlng, {icon: smallIcon });
            },

        onEachFeature: function(feature, layer) {
            layer._leaflet_id = feature.properties.control;
            var popupText = feature.properties.description 
                layer.bindPopup(popupText)
                layer.bindTooltip(feature.properties.title).openTooltip(); 
                }
                }).addTo(map);


    //  markers.addLayer(geojsonAux);


        var markers = L.markerClusterGroup();
        markers.addLayer(geojson).addTo(map);
                map.fitBounds(geojson.getBounds().pad(Math.sqrt(2) /4));
///geojson示例

var geojsonSample = {

    "type": "FeatureCollection",
    "features": [{"type":"Feature","geometry":{
    "type": "Point",
    "coordinates": [
        -72,
        4
    ]
},"properties":{
    "title": "Espacio Akana",
    "category": "Chile",
    "icon": {
        "iconUrl": "https:\/\/tupale.co\/milfs\/images\/secure\/?file=300\/82afc44d9c358234ebb411f848481ea4.png",
        "iconSize": [
            60
        ]
    },
      "localizacion": "-72 4 15 ",
    "control": "69c90579b5cbccc80b09df24057ff82b",
    "description": "primera descripcion "
}},{"type":"Feature","geometry":{
    "type": "Point",
    "coordinates": [
        -70.3976891,
        -23.64939325
    ]
},"properties":{
    "title": "Teatro Pedro de la Barra",
    "category": "Chile",
    "icon": {
        "iconUrl": "https:\/\/tupale.co\/milfs\/images\/secure\/?file=300\/82afc44d9c358234ebb411f848481ea4.png",
        "iconSize": [
            60
        ]
    },
    "localizacion": "-70.3976891 -23.64939325 16 ",
    "control": "7850c035cc53ee5719aa8677fb805ea7",
    "description": "segunda descripcion "
}} ]};
///外部html链接示例

<ul class="list-group ">
    <li class="list-group-item"><a id="7850c035cc53ee5719aa8677fb805ea7" href="#" >   Teatro Pedro de la Barra</a> </li>
    <li class="list-group-item"><a id="69c90579b5cbccc80b09df24057ff82b" href="#" >   Espacio Akana</a> </li>   
</ul>
如何通过调用每个链接的onclik事件打开弹出窗口?

中演示如果我说得对,您希望根据单击的
标记的id打开标记弹出窗口。您可以通过向所有
标记添加一个类并在那里绑定以下函数,或者在创建标记时将函数Dynamicly绑定到每个
标记来实现这一点。我已经这样做了,它工作得很完美,但请注意,我还没有测试下面的代码,可能需要进行一些调整

function openMarkerPopup(e){
    const markerID = e.id;
    const marker = markers.getLayer(markerID);
    marker.openPopup();
}

与2天前的问题差不多-在这个问题中,链接是从传单动态生成的,在我的问题中,链接是从php生成的,在传单javascript之外。我在这里尝试过,但它不起作用“Uncaught TypeError:无法读取未定义的属性“openPopup”如果您在JSFIDLE上像您的示例一样使用onclick,那么您必须这样做
onclick=“openMarkerPopup(this)
并更改我上面编辑的函数。这仍然不起作用,因为在fiddle中,您使用的geoJson与您在问题中提供的geoJson不同,其中properties.control未定义,因此此like未指定正确的值
层。_-foliate\u id=feature.properties.control;
正确,geojson是错误的,我已经更正了它并编辑了代码,但它仍然不起作用,现在我有疑问:图层是否可以。_传单_id是非数值?Hello@ivansanchez,你能帮我们复习一下吗?