2012-03-02 78 views
1

有一個環路上顯示Openstreemaps與事件標記,例如:開放街道地圖標記事件不工作

for (var i = 1; i <= length; i++) { 

    instance.markers[provider][index]['marker'] = new OpenLayers.Layer.Markers("Markers"); 
    instance.map_instance[divBlock].map.addLayer(instance.markers[provider][index]['marker']); 
    instance.markers[provider][index]['icon'] = new OpenLayers.Icon(coord_data.img_icon, new OpenLayers.Size(17,17)); 
    var mark = new OpenLayers.Marker(center, instance.markers[provider][index]['icon']); 
    mark.events.register('click', mark, function(evt){ 
     alert(coord_data.file); 
    }); 
    instance.markers[provider][index]['marker'].addMarker(mark); 
} 

活動在此代碼是行不通的。

下一頁event.register的作品,但整體上標記內層:

instance.map_instance[divBlock].map.events.register('click', instance.markers[provider][index]['marker'], function(evt){ 
    alert(coord_data.file); 
}); 

我怎麼能在這個循環中親自將活動添加到每個標記?

回答

0

因爲你必須綁定你的數據coord_data.file與每個標記對象。

的,你可以使用任何標記屬性如.. ID,標題...

例子:

var mark = new OpenLayers.Marker(center, instance.markers[provider][index]['icon']); 
mark.title = coord_data.file; 
mark.events.register('click', mark, function(evt){ 
    alert(this.title); 
}); 

希望這會工作。