我正在使用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