0

我正在尝试在 Google Maps 版本 3 中使用 MVC 对象。我似乎无法弄清楚为什么我的zoom_changed方法只被调用一次。当我第一次加载地图时,zoom_changed会调用该方法。但不是当我放大地图时。

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());
}

地图对象不应该触发缩放事件并通知所有具有“this.set('zoom', this.map.zoom)”的对象吗?

4

1 回答 1

1

找到了解决方案。看看我对原帖的评论。

参考评论如下:

找到了解决办法,需要指定一个没有设置的bindTo!IE。this.bindTo('zoom', this.map);

于 2010-04-22T15:44:04.340 回答