簡體   English   中英

單擊時如何獲取 id 並刪除它? 谷歌地圖 V3

[英]How to get the id when is clicked and remove that? Google Maps V3

這是我的代碼......我嘗試放置事件偵聽器,但控制台說:

marker.addListener 不是函數

這是我的代碼..... 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>

標記是一個數組對象。 我們不能這樣做:

$.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() 的函數中?

  • 通過循環刪除偵聽器
  • 清除數組

那不會有幫助嗎? 請試一試,讓我們知道結果。

您只能將 Google Maps 單擊偵聽器添加到支持單擊事件的 Google Maps 對象(例如google.maps.Markermarkers不是google.maps.Marker ,它是Array Array沒有方法.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 ++;
}

而不是addListener()類型addEventListener()

在解決了一些問題后,它對我有用。 腳本標簽需要關閉。 標記 [0] 上需要 addListener(而不是標記數組本身)。 我移動了 initMap 函數,這樣它就不會抱怨了。 我取消了事件偵聽器的注釋。 有效。

暫無
暫無

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

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