2012-09-25 3 views
1

흥미로운 문제가 있습니다. 사용자가 Google지도 V3에서 마커를 클릭하면 정보를 표시하기 위해 infoBubble 및 JQuery를 사용하고 있습니다. infoBubble.addTab ('tab info', data)를 사용하면 작동합니다. 하지만 infoBubble.setContent (content)를 사용하면 안됩니다.InfoBubble이 AJAX 호출로 채워지지 않습니다.

예제 코드 :

// some code here 

infoBubble = new InfoBubble({ 
    maxWidth: 480, 
    maxHeight: 250, 
    borderRadius: 5, 
    arrowSize: 15, 
    borderWidth: 3, 
    arrowPosition: 50, 
    borderColor: '#D6D6D6'   
}); 

$.post("/some/map/info", {id: this.get('id')}, function(data) { 
      // alert (data); 
      //infoBubble.addTab('Tab info', data); 
      infoBubble.setContent(data); 
    }); 
infoBubble.open(map, this); 

// rest of the code 

이 코드는 정보 창을 엽니 다,하지만하지 내용으로 채 웁니다. 경고 상자의 주석을 제거하면 코드가 작동합니다! 이유를 모르겠다. 또한 addTab 함수를 사용하면 잘 작동합니다. Firebug를 사용하여 디버그하고, 모든 vars 및 데이터는 올바르게 채워지고, 디버그 모드에서는 작동합니다! 곧 디버그 및 알림이 없으므로 작동하지 않고 빈 거품을 표시합니다. 누군가가 약간의 빛을 그늘지게 할 수 있다면, 크게 감사하겠습니다.

감사 알렉스

+0

요청이 비동기이기 때문에 내용이 설정되기 전에, 당신은 infoBubble을 개방하고 내부 infoBubble.open 이동합니다. – adeneo

답변

0

나는이 오래된 질문 알아요,하지만 난 그냥 같은 문제로 실행하고 해결책을 발견, 그래서 나는이 질문에 건너 올 수도 사람을 위해 여기에 게시하도록하겠습니다.

는 간단하게는 $ .post() 함수

$.post("/some/map/info", {id: this.get('id')}, function(data) { 
     infoBubble.setContent(data); 
     infoBubble.open(map, this); 
});