1

我有一个有趣的问题。当用户点击谷歌地图 V3 上的标记时,我正在使用 infoBubble 和 JQuery 来显示信息。如果我使用 infoBubble.addTab('tab info', data); 但如果我使用 infoBubble.setContent(content);

示例代码:

// 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 进行调试,所有变量和数据都正确填充,并且在调试模式下 - 它可以工作!一旦我退出调试并且没有警报,它就不起作用,显示空气泡。如果有人可以遮住一些光线,不胜感激。

谢谢亚历克斯

4

1 回答 1

0

我知道这是一个老问题,但我刚刚遇到了同样的问题并找到了解决方案,所以我在这里为任何可能遇到这个问题的人发帖。

只需在 $.post() 函数中移动 infoBubble.open

$.post("/some/map/info", {id: this.get('id')}, function(data) {
      infoBubble.setContent(data);
      infoBubble.open(map, this);
}); 
于 2016-02-25T18:49:42.960 回答