我想附加每個標記的Popup(我使用OpenLayers和OpenStreetMaps爲此)。每個標記正在註冊一個事件'點擊',將顯示相應的彈出窗口。events.register是自動執行正在註冊的事件
但是,它所做的只是在啓動時執行所有彈出窗口,而不是等待給定的標記點擊。
有大約1000個標記,所以我用這個循環來填充標記和彈出窗口(創建時是隱藏的):
for (var i = 0; i < data.length; i++)
{
if (i == 1) {
var lonLat = new OpenLayers.LonLat(data[i].Lon, data[i].Lat).transform(fromProjection, toProjection);
var zoom = 5;
map.setCenter(lonLat, zoom);
}
var lonLat = new OpenLayers.LonLat(data[i].Lon, data[i].Lat).transform(fromProjection, toProjection);
AddingPopup(lonLat);
AddingMarker(i, lonLat);
而這些都是我創造這兩個函數:
function AddingMarker(i, lonLat) {
var marker = new OpenLayers.Marker(lonLat);
markers.addMarker(marker);
marker.events.register('click', marker, PopupsShow(i));
};
function AddingPopup(lonLat) {
var popup = new OpenLayers.Popup("Popup", lonLat, null, "text", true);
map.addPopup(popup);
popup.hide();
};
這是被自動解僱在執行時對所有標記功能:
function PopupsShow(i) {
map.popups[i].show();
};
我在這裏錯過了什麼。爲什麼PopupsShow函數在執行時啓動,並且不等待點擊標記。我一直在尋找答案,但似乎沒有任何幫助。
謝謝!