我正在使用OpenLayers来创建地图和绘图位置。每个位置都有一个标记和一个弹出窗口,并使用OpenLayers.Feature创建 - 目前,我绝对超出了我的舒适区域,因此我们一起编写了示例代码。从OpenLayers中删除所有弹出窗口功能
function addMarker(ll, popupClass, popupContentHTML, closeBox, overflow, type)
{
var feature = new OpenLayers.Feature(markerLayer, ll);
feature.closeBox = closeBox;
feature.popupClass = popupClass;
feature.data.icon = icon;
feature.data.popupContentHTML = popupContentHTML;
feature.data.overflow = (overflow) ? "auto" : "hidden";
var marker = feature.createMarker();
var markerClick = function (evt) {
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
currentPopup = this.popup;
OpenLayers.Event.stop(evt);
};
marker.events.register("mousedown", feature, markerClick);
markerLayer.addMarker(marker);
}
地图可以包含多个标记:
的标记如下(我切碎我希望什么是简洁明显的变量赋值)创建的。
单击标记时,弹出窗口会打开和关闭。我试图做的是当点击一个新标记并弹出一个弹出窗口时,使与地图上所有标记相关的所有弹出窗口关闭 - 也就是说,我只希望一次显示一个弹出窗口。
这可能是我的方法都是错误的,但会感谢指针,甚至只是想法尝试。
谢谢对于评论,我已经使用jQuery对它进行了欺骗,现在它完成了这项工作(无需切换): ' var markerClick = function(evt){(“。olPopup”)。hide(); this.popup = this.createPopup(this.closeBox); map.addPopup(this.popup); allPopups.push(this.popup); this.popup.show(); currentPopup = this.popup; OpenLayers.Event.stop(evt); };' – 2012-02-14 11:11:26
Ahk - 以及如何在评论中获得代码块是一个完整的谜... – 2012-02-14 11:18:18
点击评论框旁边的帮助,它会告诉你。 ''code'' – capdragon 2012-02-17 17:50:04