我遇到了问题。我正在制作一张 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/