drawingManager.setDrawingMode(null) 导致太多递归

drawingManager.setDrawingMode(null) causing too much recursion

请查看此 fiddle、http://jsfiddle.net/HoffZ/Zu55b/

为什么它在 drawMan.setDrawingMode(null)

上导致错误 "too much recursion"
drawMan.setDrawingMode(google.maps.drawing.OverlayType.POLYGON);

google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {
    // When draw mode is set to null you can edit the polygon you just drawed
    drawMan.setDrawingMode(null);
});

这不是我的 fiddle 但我的代码中确实存在这个问题

我必须承认我不太明白为什么会这样。

但下面的代码似乎有效:

google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {

    if (drawMan.getDrawingMode()) {

        drawMan.setDrawingMode(null);
    }        
});

看起来像一个错误。 setDrawingMode 函数似乎触发了 overlaycomplete 侦听器。今天才开始发生在我身上。

MrUpsidown 的回答实际上触发了 overlaycomplete 第二次。除非你需要一直监听事件,否则你应该清除它。

drawMan.setDrawingMode(google.maps.drawing.OverlayType.POLYGON);

google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) {
    google.maps.event.clearListener(drawMan, 'overlaycomplete');
    drawMan.setDrawingMode(null);
});

此代码适用于我,但这是 google 错误。

if (drawManager.drawingMode) {
  drawManager.setDrawingMode(null);
}

问题出在 3.exp。现在将其切换到 3.8,问题将得到解决。