2016-09-14 83 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