Hi, I have written a basic function to allow me to display a popup from a link outside the map. The basic functionality to open the popup is working fine, but I can't then close it.<br><br>Here's a bit more detail ...<br>
<br>A typical map has about 300 features on a vector layer 'stations' loaded from kml. These are activated onload using<br><br>            select = new OpenLayers.Control.SelectFeature(stations);            <br>            stations.events.on({<br>
                "featureselected": onFeatureSelect,<br>                "featureunselected": onFeatureUnselect<br>                });<br>            map.addLayer(stations);<br>            map.addControl(select);<br>
            select.activate();<br><br>which works fine - I can open and close popups.<br><br>With my off-map links I am calling<span class="nodeLabelBox repTarget "><span class="nodeAttr editGroup "> <span class="nodeName editable ">onclick</span>="<span class="nodeValue editable ">showMyPopup([x]) with [x] being an ID attribute loaded in from the kml</span></span></span>. The showMyPopup function is<br>
<br>function showMyPopup(myID){<br>    for(var a = 0; a < stations.features.length; a++){                             //loop through all the features in stations <br>    var feature = stations.features[a];<br>    if (feature.attributes.ID.value == myID) {                                        //until it finds the one with the matching ID attribute<br>
       var content = "<h4>" + <a href="http://feature.attributes.name">feature.attributes.name</a> + "</h4>" + feature.attributes.description;<br>       popup = new OpenLayers.Popup.FramedCloud("chicken", <br>
                                     feature.geometry.getBounds().getCenterLonLat(),<br>                                     new OpenLayers.Size(200,200),<br>                                     content,<br>                                     null, true, onPopupClose);<br>
       feature.popup = popup;<br>       map.addPopup(popup);<br>       }<br>    }<br>}<br clear="all"><br>This opens the correct popup from the stations layer as expected, and I can see the popup using the DOM inspector on the stations layer just as it would appear if loaded by clicking on the map feature, but there's then seemingly no way of closing it. The original features on the stations layer are working fine though (opening and closing). And the final clue is that if I open a popup from on the map but click the 'x' on a popup still being displayed from off-map link it closes the other popup. So the bottom line is that when it calls onFeatureUnselect it doesn't seem to connect with the popup loaded from the off-map link, if that makes sense!<br>
<br>Any help would be much appreciated (maybe there's a simpler way of tackling this?)<br><br>Thanks, James<br><br>PS and just in case, here's the onFeatureUnselect function ...<br><br>function onFeatureUnselect(event) {<br>
            var feature = event.feature;<br>            if(feature.popup) {<br>                map.removePopup(feature.popup);<br>                feature.popup.destroy();<br>                delete feature.popup;<br>            }<br>
         }<br><br>Maybe I should just make that generic so it kills any and all pop-ups?<br><br>