我有一個谷歌地圖使用V3的API。它有一個可拖動的標記,然後是靜態的其他標記。我已經建立了可拖動標記它調用一個函數調用clear_markers(一dragend監聽器),像這樣:谷歌地圖V3 dragend監聽器將所有標記添加到地圖上
google.maps.event.addListener(marker_0, "dragend", function() {
clear_markers();
});
function clear_markers()
{
if (markers) {
for (var i = 1; i <= markers.length; i++) {
if(typeof markers[i] !== "undefined") {
markers[i].setMap(null);
}
}
}
}
的原因,我開始了在1循環,而不是0就是我拖動的標記是第一個標記所以我想清除地圖中除此之外的所有標記。
這裏的問題是:
如果我叫clear_markers();以任何其他方式能正常工作和標記從地圖上刪除,因此,像這樣的工作:
$('#mybutton').click(function() {
clear_markers();
});
當你拖動,雖然下降的綠色標記,它是一個從dragend聽者這是行不通的調用。標記確實被刪除,但是他們立即再次添加。我知道它們會被刪除,因爲如果我在for循環殺死腳本後在clear_markers()函數中添加了某些內容,標記就會被刪除。但是如果腳本被允許繼續存在,它們仍然存在,這意味着它們已被刪除,然後立即再次添加。
我沒有調用任何其他代碼,所以它看起來像api給我的錯誤。有沒有人有任何想法?
下面是該問題的工作示例:
您尚未提供足夠的信息來說明問題所在。發佈顯示問題的地圖鏈接,顯然系統中還有一些其他代碼會導致問題。 – geocodezip
我已經發布了該鏈接,請參閱頁面底部的鏈接,以顯示所有JS和HTML – geoffs3310
他很清楚地發佈了tinker.io的鏈接,顯示問題清晰,因爲它可以顯示 – Mike