次のような状況があります。
ポリラインがマップに追加され、ユーザーがクリックすると、その状態が編集可能に変わります。また、ユーザーがポリラインの最後の頂点をクリックしてマウスを動かし始め、ユーザーが描いているマウスパスでポリラインを拡張できるようにするイベントがあります。
ただし、イベントがあり、このイベント内に別のイベントを追加しようとすると、単に機能せず、理由がわかりません。
物事を理解しやすくするために、コードの一部を貼り付けます。
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」をリッスンする別のイベントがここにあります....
この平和なコードを機能させる方法を知っていますか。