2016-09-14 80 views
-2

這裏是我的代碼...我試圖把事件偵聽器,但控制檯說:如何獲得id被點擊並刪除?谷歌地圖V3

markers.addListener is not a function

這裏是我的代碼..... https://jsfiddle.net/1LwLczgr/1/

//The problem :(
markers.addListener('click', function() { 
     var marker = this; 
     alert(this.id+"alasddsasdkasdl"); 
}); 



<!--My API--> 
<script async defer type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBZiX9quA0AJiAFuoxrogRYObImmbCa-6g&signed_in=true&libraries=geometry,places&callback=initMap"></script> 
+0

錯誤的代碼,它是'addEventListener' ... – kukkuz

+0

相同... addEventListener不是一個函數 –

+0

你的小提琴中有javascript錯誤('未捕獲的InvalidValueError:initMap不是函數,'未捕獲的SyntaxError:意外的輸入結束') – geocodezip

回答

1

只能添加谷歌地圖點擊聽衆支持點擊事件(如google.maps.Marker谷歌地圖的對象。markers不是google.maps.Marker,它是一個ArrayArray都不具備的方法.addListener

一種選擇是將點擊監聽器添加到標記,當你創建它:。

// Adds a marker to the map and push to the array. 
function addMarker(location) { 
    var marker = new google.maps.Marker({ 
    id:count, 
    position: location, 
    map: map 
    }); 
    marker.addListener('click', function() { 
    var marker = this; 
    alert(this.id+"alasddsasdkasdl"); 
    }); 
    markers.push(marker); 
    countmarkers ++; 
    count ++; 
} 
+0

非常感謝你!然後只刪除.... setmap markers [id] .setMap(null)? –

0

而不是addListener()鍵入addEventListener()

+0

相同... addEventListener不是函數 –

1

標記是一個Array對象。 我們不能做的事:

$.each(markers, function(index, value) { 
// Add listener here? 
}); 

參考: http://api.jquery.com/jquery.each/

還是在普通的JavaScript:

for(var i = 0; i < markers.length; i++) 
{ 
// Add listener here? 
} 

編輯 - 問題 - 然後裏面DeleteMarkers()的功能?通過循環

  • 清除陣列
  • 這樣不是幫助

    • 刪除監聽器?請嘗試一下,讓我們知道結果。

    +0

    然後在DeleteMarkers()的函數中? –

    +0

    我把marker.addEventListener與initMap中的每個jquery的函數都放在一起,控制檯並沒有告訴我有什麼問題,但是我沒有得到任何id的提醒! –

    +0

    正如@geocodezip所述,我們不能將'markers.addEventListener'作爲**標記**是一個Array對象;我們應該處理該數組中的一個元素,即 - ** google.maps.Marker **。你可以通過循環數組** **標記** –

    0

    它固定幾件事情後,爲我工作的腳本標籤需要被關閉的addListener被要求上的標記[ 0](不在標記上陣列本身)。我移動了initMap函數,以便它不會抱怨。我沒有注意到事件監聽者。有效。

    +0

    我不明白....標記[0](不在標記數組本身)上需要addListener .....另一方面,感謝@geocodezip –

    +0

    @我看了@ geocodezip的代碼。他創建標記,添加監聽器,然後將標記推入數組。 OTOH,您的代碼正在創建一個標記,將標記推入數組,然後將偵聽器添加到數組對象本身。 – blackpen