2014-02-07 5 views
1

마커 배열을 만들고 dragstart 및 dragend에 기능을 추가하고 있습니다. 마침내 간단한 변경 작업을 수행했지만 작성한 원래 코드가 작동하지 않는 이유를 이해할 수 없습니다.jquery 및 Google지도 v3 dragstart 및 dragend

는 각 마커를 들어 다음 코드를 실행합니다 : 나는 이동을 취소 할 경우

google.maps.event.addListener(marker, 'dragstart', function(evt){ 
    GLOBAL.startDragPosition = this.getPosition(); 
}); 

google.maps.event.addListener(marker, 'dragend', function(evt){ 
    if (confirm("Are You Sure You Want To Move this marker NOW ??")) { 
     //do something here ... 
    } else { 
     marker.setPosition(GLOBAL.startDragPosition); 
     delete GLOBAL.startDragPosition;    
    } 
}); 

는 다른 마커는 원래의 위치로 다시 이동합니다. else 문을 다음과 같이 변경하면 작동합니다. -

} else { 
     this.setPosition(GLOBAL.startDragPosition); 
     delete GLOBAL.startDragPosition;    
    } 

"마커"라는 이유는 누구에게 말해 줄 수 있습니까? 표식은 마커가 드래그되는 것을 나타내지 않고 있습니까?

TIA !!

답변

1

이 코드 : 폐쇄 작동 방식

google.maps.event.addListener(marker, 'dragend', function(evt){ 
    if (confirm("Are You Sure You Want To Move this marker NOW ??")) { 
     //do something here ... 
    } else { 
     marker.setPosition(GLOBAL.startDragPosition); 
     delete GLOBAL.startDragPosition;    
    } 
}); 

가되지 않습니다. 변수는 실제로 function(evt) {}에 전달되지 않습니다. 내 직감은 마커를 다른 곳에서 여러 번 정의하는 것입니다. 이 함수를 청취자를 설정할 때 정의 된 바와 같이 'dragend'이 마커에 표시 되더라도 실행될 코드 블록으로 생각하십시오.

+0

의미가 있습니다 - 내가보고있는 방식으로 "마커"가 함수로 전송되었습니다. --- 감사합니다! 이제 내가 무슨 뜻인지 안다. :) – Angela