0

我有以下情况:

在地图上添加了一条折线,当用户单击它时,它的状态变为可编辑。我还有一个事件,如果用户单击折线的最后一个顶点并开始移动鼠标以能够使用用户正在绘制的鼠标路径扩展折线。

然而,似乎当我有一个事件并且在这个事件中我尝试添加另一个事件时它根本不起作用,我不知道为什么。

以防万一让事情更容易理解,我将粘贴我的一部分代码。

google.maps.event.addListener(polyLine, "mousedown", function(event){
               if(polyLine.getEditable() === true) 
               {
                   if(typeof event.vertex !== "undefined") 
                   {    
                        if(event.vertex === polyLine.getPath().getLength() - 1) 
                        {
                            polyLine.setEditable(false);

                                if(mouseMoveDrawingEvent === null)
                                {
                                    map.setOptions({draggable:false});
                                    polyLine.setOptions({clickable:false});
                                    mouseMoveDrawingEvent = google.maps.event.addListener(map, "mousemove", function(event) 
                                    {
                                        alert("1"); // <== this never fires
                                        polyLine.getPath().push(event.latLng);
                                        drawingLabel.setPoint(event.latLng);
                                        drawingLabel.setContents("<div style='background-color:white'>" + (google.maps.geometry.spherical.computeLength(polyLine.getPath()) / 1000).toFixed(2) + " км.</div>");
                                    });
                                }    

                            map.getDiv().onmouseup = function(ev) {
                                polyLine.setOptions({clickable:true});
                                map.getDiv().onmousedown = null;
                                map.getDiv().onmouseup = null;
                                google.maps.event.removeListener(mouseMoveDrawingEvent);
                                mouseMoveDrawingEvent = null;
                            };
                        }
                   }
               }
           });

......

这里还有另一个监听“mouseup”的事件......

你们知道如何使这种代码和平工作。

4

1 回答 1

0

我找到了解决问题的方法。

问题是,当我设置折线 {clickable:false} 时,api 会删除事件(显然其中的所有内容:)

于 2013-05-08T20:40:08.123 回答