이번 예제는 Event Remove입니다.
예제를 실행시킨 다음 맵을 여러 번 클릭해 보세요.
처음 한번만 마커가 추가되고 이후로는 아무런 일도 일어나지 않습니다.
소스를 보죠.
function initialize() {
this.counter = 0;
this.map = new GMap2(document.getElementById("map_canvas"));
this.map.setCenter(new GLatLng(37.4419, -122.1419), 13);
var myEventListener = GEvent.bind(this.map, "click", this, function(overlay, latlng) {
if (this.counter == 0) {
if (latlng) {
this.map.addOverlay(new GMarker(latlng))
this.counter++;
} else if (overlay instanceof GMarker) {
// This code is never executed as the event listener is
// removed the second time this event is triggered
this.removeOverlay(marker)
}
} else {
GEvent.removeListener(myEventListener);
}
});
}
this.counter를 읽어서 0인 경우에만 마커를 추가하고 this.counter를 증가시킵니다.
이후 this.counter가 0이 아니면 마커를 삭제합니다.
페이지가 로딩된 후 최초 한번만 어떤 이벤트를 실행시키고 싶을 때 응용하면 좋겠네요.
출처 : http://code.google.com/intl/ko/apis/maps/documentation/examples
예제를 실행시킨 다음 맵을 여러 번 클릭해 보세요.
처음 한번만 마커가 추가되고 이후로는 아무런 일도 일어나지 않습니다.
소스를 보죠.
function initialize() {
this.counter = 0;
this.map = new GMap2(document.getElementById("map_canvas"));
this.map.setCenter(new GLatLng(37.4419, -122.1419), 13);
var myEventListener = GEvent.bind(this.map, "click", this, function(overlay, latlng) {
if (this.counter == 0) {
if (latlng) {
this.map.addOverlay(new GMarker(latlng))
this.counter++;
} else if (overlay instanceof GMarker) {
// This code is never executed as the event listener is
// removed the second time this event is triggered
this.removeOverlay(marker)
}
} else {
GEvent.removeListener(myEventListener);
}
});
}
this.counter를 읽어서 0인 경우에만 마커를 추가하고 this.counter를 증가시킵니다.
이후 this.counter가 0이 아니면 마커를 삭제합니다.
페이지가 로딩된 후 최초 한번만 어떤 이벤트를 실행시키고 싶을 때 응용하면 좋겠네요.
출처 : http://code.google.com/intl/ko/apis/maps/documentation/examples