Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除标记侦听器_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 删除标记侦听器

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?! });}

这次有点简单的问题(要解释):

我有一系列标记,因此我配备了eventlisteners:

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);