On Mar 24, 12:02 pm, thebit <[email protected]> wrote: > Hi, > I tried to follow your suggestion but withou success. > You can look the "infoWindowArray[this.id] is undefined" error > athttp://thebit.altervista.org/maps/testAddMarker5_web_new.phpif you > try to click over a marker. > > I think I will utilise another solution I have found by searching in > this group: > > I put > loadedMarker.infoWindow = new google.maps.InfoWindow( > intead of > infoWindowArray[this.id] = new google.maps.InfoWindow( > AND > this.infoWindow.open(map,this); > intead of > infoWindowArray[this.id].open(map, this); > and it works. > > So, I have another problem: when I open more markers, the previous > which are opened does not closed. > Why?
Because you didn't close it. The v3 infowindow is not limited to a single instance, but you can program so there is only one on your map (I do that on most of my maps, I personally like the v2 behavior of only having a single infowindow). Or if you only want one open at a time, you have to close the currently open one when you open a new one. -- Larry > > Thanks. > > On 22 Mar, 21:39, chinhua kong <[email protected]> wrote: > > > Sorry that I couldn't spend time to test on page. Here is a few suggestions. > > > 1. The var infowindowArray should be defined at global level (Same as where > > you defines marker). Else event can't recognized it. > > 2. The i value is not recognized when the event is fired. One of the > > solution is let the marker remember it. You can add an id parameter in > > marker and access it in the event listener such as following: > > > var loadedMarker = new google.maps.Marker( > > { > > id: i, > > position: new > > google.maps.LatLng(loadCoordinates[i]['lat'], > > loadCoordinates[i]['lng']), > > map: map, > > title: > > loadCoordinates[i]['name'] > > > }); > > > Then edit the listener function as following > > > google.maps.event.addListener(loadedMarker, 'click', function() > > { > > > > infowindowArray[this.id].open(map,this); > > > }); > > > > > I will suggest you to change you design. Let the marker hold the infowindow > > and don't depend on the infowindowarray. If there is a request to remove an > > marker, you can request the marker to clean its infowindow. > > > On Tue, Mar 22, 2011 at 4:04 PM, thebit <[email protected]> wrote: > > > I'm sorry but I don't understand your answer: > > > >Are you try to manage it in future? > > > Yes, because in the future I will give the possibility to delete each > > > marker by click onto a button near each marker. > > > > > Your solution is right for the above error but not really effiecient for > > > the > > > > infowindow[i]. You try to make infowindow as an array which I don't > > > > understand your purpose. > > > > What is a valid solution? > > > I tried to create an array by writing: > > > var infowindowArray = new Array(); > > > > and in the "for" I put infowindowArray[i] but it appears an error (see > > > the link > > >http://www.google.com/url?sa=D&q=http://thebit.altervista.org/maps/te... > > > ). > > > I'm not sure to have understand what I must to do. > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Google Maps JavaScript API v3" group. > > > To post to this group, send email to > > > [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]. > > > For more options, visit this group at > > >http://groups.google.com/group/google-maps-js-api-v3?hl=en. > > > -- > > Best and Regards, > > Chin Hua Kong > > -- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.
