我制作一个javascript传单项目。我有2种标记。第一个用于停车,第二个用于航点。
目标是拖动停车标记并将其移动通过某些航点标记。 (从0到n)不丢弃。
在dragend之后,停车标记在起始位置返回,并将该标记移动的所有对象添加到父级。
所以我做了一些活动。上:
dragstart(停车点标记):定义要添加的全局对象,
mouseover(航路点):添加"此" to global object,if global object!null,
dragend(停车点标记):停止并使全局对象为空,
有效。 但问题是,只有当停车标记的拖动速度很快时才能正常工作。如果它慢慢地,鼠标悬停没有解雇。 可能是我选择了错误的方式来实现目标,或者可能是你知道的。如何让它更好?
tmpVar = L.marker([point.LAT, point.LON], {
'title': title,
'draggable': true
});
tmpVar.on('mouseout', function(event){
var localData;
localData=event.target.source.NUMBER-1;
if (typeof(rootScope.addingPoints) != "undefined"){
rootScope.addingPoints.push(localData);
}
});
tmpVar2 = L.marker([track[i].coords[0].lat, track[i].coords[0].lon],
tmpVar2.on('dblclick', function(event){
var localData=event.target;
rootScope.$emit('pointEditingPopup', localData );
});
tmpVar2.on('dragstart', function(event){
rootScope.addingPoints=[];
if( typeof (event.target.source.servicePoints) == 'undefined'){
event.target.source.servicePoints=[];
}
rootScope.currentStopPoint=event.target.source;
});
tmpVar2.on('dragend', function(event){
var container=event.target;
checkAndAddNewWaypointToStop(rootScope.addingPoints, rootScope.currentStopPoint);
container.setLatLng([container.source.lat, container.source.lon]).update();
});
addMarker(tmpVar2);