当使用ajax再次加载时,无法将信息框放置到其先前的位置

时间:2013-11-28 13:00:58

标签: jquery google-maps google-maps-markers infowindow infobox

似乎在ajax成功功能中重新加载信息框是试图将信息框放在其他地方,在firebug我可以看到它将其顶部更改为其他内容。如果早些时候它的顶部:-12.4635px;然后当我使用

  

lastInfoWindow.setOptions({“content”:“其内容在这里”});

然后它变成-4.46351px;当我点击信息框上的下一个或上一个按钮时,下一个和上一个按钮调用ajax动态更改其内容

以前初始化的lastInfoWindow是这样的:

> var myOptions = {
>           boxClass: "popup infoBox",
>           content:boxText,
>           disableAutoPan:true,
>           maxWidth:0,
>           pixelOffset: new google.maps.Size(-(ib_width/2), 0),
>           zIndex: null,
>           boxStyle: {
>             background: "none",
>             opacity: 1,
>             width: ib_width+"px"
>           },
>           closeBoxMargin: "0px 0px 0px 0px",
>           closeBoxURL: "/" + version_link + "/images/popup_close.png",
>           infoBoxClearance: new google.maps.Size(1, 1),
>           isHidden: false,
>           pane: "floatPane",
>           enableEventPropagation: false,
>           marginBottom:mb,
>           marginLeft:ml,
>           grouped:group
>         };
>         var infoWindow = new InfoBox(myOptions);
>         lastInfoWindow = infoWindow;

我尝试在某个变量中获取当前顶部位置,然后在ajax完成函数之后我尝试将其顶部更改为已保存的位置,但它不起作用,我使用setTimeout来延迟它但仍然无法正常工作。我现在还能做些什么。

1 个答案:

答案 0 :(得分:0)

修改过的Infobox js文件

InfoBox.prototype.rePosition = function () {
    if(cM_contentCurrentPos){
          this.div_.style.top = cM_contentCurrentPos;
    }
}

其中cM_contentCurrentPos包含前一个顶部位置。 我这样叫它

infoWindow.rePosition();