0

似乎在 ajax 成功函数中重新加载信息框正在尝试将信息框定位到其他位置,在萤火虫中我可以看到它的顶部更改为其他内容。如果更早,它的顶部:-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 来延迟它,但它仍然没有工作。我现在还能做什么。

4

1 回答 1

0

修改信息框js文件

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

其中 cM_contentCurrentPos 包含先前的顶部位置。我这样称呼它

infoWindow.rePosition();
于 2013-12-03T08:50:34.840 回答