Javascript 删除标记侦听器
这次有点简单的问题(要解释): 我有一系列标记,因此我配备了eventlisteners:Javascript 删除标记侦听器,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,这次有点简单的问题(要解释): 我有一系列标记,因此我配备了eventlisteners: for (i in markersArray) { google.maps.event.addListener(markersArray[i], 'click', function() { //stuff it does google.maps.event.removeListener(?????) //remove self... but HOW?! });}
for (i in markersArray) {
google.maps.event.addListener(markersArray[i], 'click', function() {
//stuff it does
google.maps.event.removeListener(?????) //remove self... but HOW?!
});}
正如我在评论中提到的,我只想在单击侦听器后将其删除
问题是我不知道侦听器的句柄是什么。我很确定在这种情况下,您将使用侦听器数组(或封装标记和侦听器的对象)
google.maps.event
返回一个事件对象
免责声明:我还没有检查语法。你也可以像我看到的那样尝试移除监听器(markersArray[i]),但不知道它是否有效。你也可以使用
clearListeners(实例:对象,事件名称:字符串)
你可以使用“addListenerOnce”。然后你甚至不必费心删除侦听器
addListenerOnce(实例:Object,
事件名称:字符串,处理程序:函数)
与event.AddListener类似,但处理程序
在处理后移除自身
第一件事
旧帖子,但文档当前显示:
很好的一个,正是我需要的:)removeListener(markersArray[i])在我昨天尝试时对我不起作用,一直给我api错误我没有注意到你在我重新标记它之前删除了
google maps
标记。我会保留它,因为所有谷歌地图API问题通常都是这样标记的。
var markersListeners = [];
for (i in markersArray)
{
markersListeners[i] = google.maps.event.addListener(markersArray[i], 'click', function()
{
//stuff it does
google.maps.event.removeListener(markersListeners[i]);
});
}
var listener1 = marker.addListener('click', aFunction);
var listener2 = marker.addListener('mouseover', bFunction);
// Remove listener1 and listener2 from marker instance.
google.maps.event.clearInstanceListeners(marker);