簡體   English   中英

Google Maps API v3:animation_changed事件觸發兩次?

[英]Google Maps API v3: animation_changed event firing twice?

我正在使用v3的Google Maps JavaScript API創建地圖。 我將標記放到地圖上,並為每個標記打開InfoWindows,並將信息面板添加到側面div,但是我不希望InfoWindows或側面信息面板打開,直到放下動畫后完成,所以我做了一個事件監聽器。

google.maps.event.addListener(newMarker, 'animation_changed', function() {
    if (this.animation == null) {
        // Open InfoWindow
        // Add side info panel
    }
});

問題在於,當Marker完成刪除操作后,此偵聽器將觸發兩次,並且兩次if評估都為true。 對於InfoWindow來說,這不是問題。 一旦打開,它就會打開,並且第二次調用.open()不會執行任何操作。 但是每個事件兩次將div信息添加到側面板,這是一個問題。 現在,我創建了一個非常簡單的解決方法:

google.maps.event.addListener(newMarker, 'animation_changed', function() {
    if (this.animation == null && this.dropped != true) {
        this.dropped = true;
        // Open InfoWindow
        // Add side info panel
    }
});

那已經達到了我的預期效果,但是感覺很hacky。 有沒有更好的方法可以做到這一點? 我打聽者的電話不正確嗎?

哈哈,我完全沒有想到這一點。 謝謝,莫爾博士。 第一次觸發后就停止收聽。

var myListener = google.maps.event.addListener(newMarker, 'animation_changed', function() {
    google.maps.event.removeListener(myListener);
        if (this.animation == null) {
        // Open InfoWindow
        // Add side info panel
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM