OpenLayers に、単純なレイヤーとマーカー レイヤーを含むマップがあります。マーカー レイヤーのマーカーは から生成されdata.rows
ます。すべてのマーカーについて、関数を「マウスダウン」(または「クリック」) イベントに登録したいのですが、うまくいかないようです。マーカーがマップに追加されましたが、クリックすると、イベントに登録された機能が入力されません。
// Marker-Layer
var markers = new OpenLayers.Layer.Markers("SABA")
// Icon
var size = new OpenLayers.Size(21, 25);
var offset = new OpenLayers.Pixel(-(size.w / 2), -size.h);
var iconPath = document.location.protocol + '//' + document.location.hostname + '/saba/modulesinst/sa/icons/pin.png';
var icon = new OpenLayers.Icon(iconPath, size, offset);
// Rows durchgehen
Array.each(data.rows, function(item, index) {
if (item.x != null && item.y != null) {
var newmarker = new OpenLayers.Marker(new OpenLayers.LonLat(item.x, item.y), icon.clone())
newmarker.events.register('mousedown', newmarker, function(evt) {
alert(item.name);
OpenLayers.Event.stop(evt);
});
markers.addMarker(newmarker);
}
});
this.listMap.addLayer(markers);