javascript - OpenLayers on Load Markers Popup -


i'm using openlayers view map , i'm having issue marker's popup. when markers loaded, i'm assigning them 2 events moouseover , mouseout when of markers triggered these events first created marker's popup shown, when mouseover other markers. i'm creating these events first marker , not of them.. ideas? thanks

var listmarkers = getmarkers();          (var = 0; < listmarkers.length; i++) {             var size = new openlayers.size(21, 25);             var offset = new openlayers.pixel(-(size.w / 2), -size.h);             var icon;             if (listmarkers[i].icon.trim() === "red") {                 icon = new openlayers.icon                 ('http://www.openlayers.org/dev/img/marker.png', size, offset);             }             else {                 icon = new openlayers.icon                 ('http://www.openlayers.org/dev/img/marker-' + listmarkers[i].icon.trim() + '.png', size, offset);             }              var mark = new openlayers.marker(new openlayers.lonlat(listmarkers[i].longitude,                 listmarkers[i].latitude).transform(new openlayers.projection("epsg:4326"),             map.getprojectionobject()), icon);              //here add mouseover event             mark.events.register('mouseover', mark, function (evt) {                 popup = new openlayers.popup.framedcloud("popup",                     new openlayers.lonlat(listmarkers[i].longitude,                 listmarkers[i].latitude).transform(new openlayers.projection("epsg:4326"),             map.getprojectionobject()),                     null,                     '<div><b>' + listmarkers[i].title + '</b><br/>' + listmarkers[i].description + '</div>',                     null,                     false);                 map.addpopup(popup);             });             //here add mouseout event             mark.events.register('mouseout', mark, function (evt) { popup.hide(); });             markers.addmarker(mark);         } 

in mouseover event while creating popup you're referring listmarkers[i], in javascript scope remember last value of given variable i, every popup information listmarkers[listmarkers.length-1]. fix this, add details (title, latitude, longitude) mark object (mark.data.title = listmarkers[i]), , read them in event handler evt or this object (as you're setting in register call).


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -