drawingManager.setDrawingMode (null) provoquant trop de récursivité

S’il vous plaît consulter ce violon, http://jsfiddle.net/HoffZ/Zu55b/

Pourquoi provoque-t-il l’erreur “trop ​​de récursivité” sur drawMan.setDrawingMode(null)

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

Ce n’est pas mon violon mais j’ai ce problème dans mon code

Je dois admettre que je ne comprends pas très bien pourquoi cela se produit.

Mais le code suivant semble fonctionner:

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

On dirait un bug. La fonction setDrawingMode semble déclencher l’écouteur de overlaycomplete . Seulement commencé à m’arriver aujourd’hui.

La réponse de overlaycomplete déclenche en overlaycomplete une overlaycomplete une seconde fois. Sauf si vous devez restr à l’écoute de l’événement, vous devez l’effacer.

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

Le problème est avec 3.exp. Pour l’instant, réglez-le sur 3.8 et le problème sera résolu.

ce code fonctionne pour moi, mais c’est un bug de Google.

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