aufrufen Ich habe die Funktion unten. Alles funktioniert gut, außer für die Push-, Pop- und Remove-Methode. Diese Methode sollte vom Event-Handler aufgerufen werden. Dieses Ereignis wird von der Google Maps API ausgelöst.Wie öffentliche Methode von einem Ereignishandler
Das Problem ist, dass wenn das Ereignis ausgelöst wird, diese Methoden nicht gefunden werden. Ich habe eine "Push ist nicht definiert" Fehlermeldung.
Ich versuchte mit diese, aber das funktioniert nicht.
Wie rufe ich die öffentliche Methode aus dem Event-Handler?
Danke Jungs
function Track(mapContainer) {
var map = mapContainer;
var points = new Array();
var isEditMode = false;
var clickListener;
this.Push = function(point) { ... }
this.Pop = function() { ... }
this.Remove = function(point) { ... }
//Enable/disable the marker placements
this.PlaceWaypoint = function(isPlacing) {
if (isPlacing != true) {
if (clickListener != null) {
google.maps.event.removeListener(clickListener);
clickListener = null;
}
} else {
clickListener = map.AddEvent("click", function(event) {
if (!IsDoubleClick()) {
var point = map.PlaceMarker(new WayPoint(event.latLng))
point.RemoveListener(function() { Remove(point); });
Push(point);
} else {
Pop();
}
});
}
}
}
es ist wahrscheinlich besser, Umfang dies die Funktion, indem Sie var davor setzen, sonst wird die Variable $ this überschrieben, wenn mehrere Instanzen von Track vorhanden sind, und Methoden werden auf der falschen Instanz aufgerufen. – PatrikAkerstrand
@Machine, danke wurde auf Fehler hingewiesen, habe es entsprechend behoben. –