jQuery 및 jQuery UI를 사용하여 Javascript에서 Openlayers 도구 모음을 개발 중입니다.Javascript에서 모달 차단 대화 상자
구현하고 싶은 기능 중 하나는지도에 포인트 추가입니다.
openLayers에서 'sketchcomplete'라는 이벤트를 수신 대기해야합니다.
layer.events.on({
'sketchcomplete': onPointAdded
});
문제는 onPointAdded 콜백입니다. 이 콜백은 true 또는 false를 반환해야합니다. True는 점을 맵에 추가해야한다는 것을 의미하고 false는이 점을 맵에 추가하는 것을 취소 함을 의미합니다.
지금 콜백은 다음과 같습니다
onPointAdded = function(feature) {
var f = feature.feature;
var result = false;
$('#dialog-point-add').dialog({
modal : true,
buttons : {
'Add point' : function() {
result = true;
$(this).dialog("close");
},
'Cancel' : function() {
result = false;
$(this).dialog("close");
}
}
});
return result;
};
문제는이 대화 상자가 실행 코드를 차단하지 않습니다. 나는 너에게이 상황을 다루는 방법을 묻고있다. 나는 포인트 추가를위한 확인과 함께 사용자에게 대화를 보여주고 싶다.
당신은 논리를 추가 무슨 뜻 이죠? 이 콜백을 호출하는 코드를 변경한다는 의미입니까? 예라면 OpenLayers 코드에서 digg를 가져 와서 변경해야하지만 라이브러리를 건드리지 않는 것이 좋습니다. "논리 추가"라고 말하면서 마음에 무엇이 있는지 설명 할 수 있습니까? 고맙습니다. – Marcin
나는 열린 레이어를 알지 못하고 함수가 true를 반환 할 때 코드 일부를 호출 할 것이라고 생각했습니다. 그래서 제 제안은 코드 (또는 호출)를 jQuery UI 콜백으로 옮기는 것입니다. 잘못했다, 미안해. –
이 과정은 해결책이 될 수 있습니다.하지만 추가 된 점과 사용자가 저장/확인을 누른 다음이 양식의 좌표와 이름이 포함 된 Ajax 게시물을 보내면 입력 대화 상자 양식에 표시해야합니다. 사용자가 "취소"를 클릭하면 해당 지점을 삭제해야합니다. 난 다른 openlayers 콜백과 함께이 솔루션을 발견. 고맙습니다 ... – Marcin