2010-04-22 4 views
0

J'essaie d'utiliser les objets MVC dans Google Maps version 3. Ce que je n'arrive pas à comprendre, c'est pourquoi ma méthode zoom_changed n'est appelée qu'une seule fois. Lorsque je charge la carte pour la première fois, la méthode zoom_changed est invoquée. Mais pas quand je zoom sur la carte.zoom_changed ne déclenche qu'une seule fois dans l'API Google Maps version 3 en utilisant MVC

function MarkerWidget (options) { 
    this.setValues(options); 
    this.set('zoom', this.map.zoom); 

    var marker = new google.maps.Marker({ 
      icon : this.icon, 
      mouseOverIcon : this.mouseOverIcon, 
      orgIcon : this.orgIcon 
    }); 

    marker.bindTo('map', this); 
    marker.bindTo('position', this); 

    google.maps.event.addListener(marker, 'mouseover', this.onmouseover); 
    google.maps.event.addListener(marker, 'mouseout', this.onmouseout); 
} 

MarkerWidget.prototype = new google.maps.MVCObject(); 
MarkerWidget.prototype.zoom_changed = function() { 
    $.log(this, new Date()); 
} 

pas Si l'objet carte déclenche l'événement de zoom et informer tous les objets qui a "this.set ('zoom', this.map.zoom)"?

+0

Trouvé la solution, vous devez spécifier un bindTo pas défini! c'est à dire. this.bindTo ('zoom', this.map); – fredrik

+0

Je suis content que vous l'ayez résolu. Vous pouvez afficher cette réponse et l'accepter. –

Répondre

1

Trouvé la solution. Soit mon commentaire sur le post original.

commentaire référencé ci-dessous:

trouvé la solution, vous devez spécifier un BindTo pas réglé! c'est à dire. this.bindTo ('zoom', this.map);

Questions connexes