You're passing the wrong argument to GEvent.removeListener().
GEvent.addListener() returns a listener object. That's what you need to save
in your arrays and later pass to GEvent.removeListener().
For example, instead of the two .push() calls you make after adding the two
listeners, you could push the correct values like this:
StartListeners.push( GEvent.addListener(
ZoneStartFinishMarkers[idStart], "dragend", function(){
...
} ) );
FinishListeners.push( GEvent.addListener(
ZoneStartFinishMarkers[idFinish], "dragend", function() {
...
} ) );
and change this part of your removal loop:
var pointerS = StartListeners[i];
var pointerF = FinishListeners[i];
GEvent.removeListener(StartFinishMarkers[pointerS]);
GEvent.removeListener(StartFinishMarkers[pointerF]);
to:
GEvent.removeListener( StartListeners[i] );
GEvent.removeListener( FinishListeners[i] );
-Mike
On Mon, May 24, 2010 at 12:21 PM, nlraley <[email protected]> wrote:
> Okay, I had a typo in the name of the Listeners I was trying to
> remove. I fixed that; however, I am now getting the following error
> with the main.js for GoogleMaps. Error line 207 that object doesn't
> support this property or method. Any ideas as to what I am doing
> wrong?
>
> On May 24, 1:40 pm, Nathan Raley <[email protected]> wrote:
> > Okay, I am having some trouble removing my listeners for my markers when
> I
> > am in the process of clearing them out of my marker manager.
> >
> > I have added my markers as such:
> >
> > var StartMarker = new GMarker(point1, ZoneStartMarkerOptions);
> > var FinishMarker = new GMarker(point2, ZoneFinishMarkerOptions);
> > ZoneStartFinishMarkers[idStart] = StartMarker; // Adds to our
> > ZoneStartFinishMarkers at our ZoneID * 2
> > GEvent.addListener(ZoneStartFinishMarkers[idStart], "dragend",
> function(){ //
> > Creates the Listener for the StartMarker
> > var Point = StartMarker.getPoint(); // Gets the new location of
> the
> > marker
> > var ZoneID = StartMarker.getTitle(); // Sets the ZoneID to the ID of the
> > Zone set in the title above
> > var pointb = FinishPoints[idFinish]; // Gets the Point of the Finish
> Marker
> > Distance = point1.distanceFrom(pointb); // Gets the Distance from the
> > Finish Marker
> > UpdateString = "S," + ZoneID + Point + Distance; // Sets the update
> string
> > to the new location - S indicates Start} );
> >
> > ZoneStartFinishMarkers[idFinish] = FinishMarker; // Adds to our
> > ZoneStartFinishMarkers at our ZoneID * 2 + 1
> > GEvent.addListener(ZoneStartFinishMarkers[idFinish], "dragend",
> function() { //
> > Creates the Listener for the FinishMarker
> > var Point = FinishMarker.getPoint(); // Gets the new location of the
> marker
> > var ZoneID = FinishMarker.getTitle(); // Sets the ZoneID to the ID of
> the
> > Zone set in the title above
> > var pointb = StartPoints[idStart]; // Gets the Point of the Start Marker
> > Distance = point2.distanceFrom(pointb); // Gets the Distance from the
> Start
> > Marker
> > UpdateString = "F," + ZoneID + Point + Distance; // Sets the update
> string
> > to the new location - F indicates Finish
> >
> > } );
> >
> > Afterwards I add the ids of the listeners to an array as such:
> > StartListeners.push(idStart);
> > FinishListeners.push(idFinish);
> >
> > Now I am trying to call a function to remove the listeners when I am
> getting
> > ready to destroy the markers and I am doing it like so:
> > function ClearStartFinishMM() {
> > alert("ClearStartFinishMM");
> > if(ZoneStartFinishMM) {
> > alert(StartListeners.length);
> > alert(FinishListeners.length);
> > for(var i = 0; i < FinishListeners.length; i++) {
> > alert("StartListeners pos " + i + " = " + StartListeners[i]);
> > alert("FinishListeners pos " + i + " = " +FinishListeners[i]);
> > var pointerS = StartListeners[i];
> > var pointerF = FinishListeners[i];
> > GEvent.removeListener(StartFinishMarkers[pointerS]);
> > GEvent.removeListener(StartFinishMarkers[pointerF]);}
> >
> > ZoneStartFinishMM.clearMarkers();
> >
> > }
> > return;
> > }
> >
> > Now, my array lengths are the length that they are supposed to be, but
> when
> > I try to remove the listener I get a StartFinishMarkers is undefined.
> Any
> > ideas?
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google Maps API" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> [email protected]<google-maps-api%[email protected]>
> .
> > For more options, visit this group athttp://
> groups.google.com/group/google-maps-api?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps API" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-api%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-api?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Google Maps API" 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-api?hl=en.