javascript - Google Maps API V3 - 在创建标记后添加监听器

标签 javascript google-maps

我遇到了问题。我正在制作一张 map ,您可以使用“工具”添加标记、折线和多边形。就像 MS Paint 和那里的工具一样。您单击工具,然后在 map 上做任何您想做的事情。

问题是,我在没有任何监听器的情况下添加标记,因此我无法单击它们 - 因为我希望该工具只是将标记放置在选定的位置。

我的问题是创建一个工具,它可以让我删除这些标记。但要做到这一点,我的工具需要向标记添加单击事件监听器......并且它们是前一段时间创建的。那可能吗?因为当我尝试制作 addeventlistener (marker, 'click, xxx()) 时,我收到标记未定义的错误。

我不会在这里发布完整的代码,因为它很多,但如果您需要任何部分,请询问,我会尽快发布。

编辑1:

正如 Majid Fouladpour 所说,全局变量有效,但仅适用于最后添加的标记:o?

最佳答案

您需要将marker设为全局变量。您现在正在函数中定义它:

function somefunction(params) {
    ...
    var marker = ....
    ...
}

相反,您应该:

var marker;
...

function somefunction(params) {
    ...
    marker = ....
    ...
}

更新

您的评论表明您现在正确地理解了引用部分。如果您的函数未触发,则代码的添加监听器部分应该有问题。你是这样做的吗?

google.maps.event.addListener(marker, 'click', function() {
    alert('x');
});

关于javascript - Google Maps API V3 - 在创建标记后添加监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476508/

相关文章:

javascript - SVG 图标看起来模糊 - Google map

javascript - 在 Angular 中的其他组件之间更改 url 时保留 HTML 值(选定的选项、复选框)

javascript - 仅使用 jquery 将文件从输入字段移动到文件夹

javascript - 更新 Google Maps API v3 中的 UI 控件

javascript - 在 ng-model 中具有单向绑定(bind)的两个输入

javascript - 我们可以使用本地主机的 kml 文件吗?

asp.net - 如何知道当前谷歌地图显示了多少密耳

JavaScript - 添加 ID 和类

javascript - AngularJS 与 Angular-Google-maps : Add Marker through fomr and Find me

javascript - 谷歌地图加载超过 1000 个标记浏览器无响应