Невозможно поместить информационный блок в предыдущее положение при повторной загрузке с использованием ajax
Кажется, что перезагружая инфобокс внутри функции успеха 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 ответ
Измененный файл Infobox js
InfoBox.prototype.rePosition = function () {
if(cM_contentCurrentPos){
this.div_.style.top = cM_contentCurrentPos;
}
}
где cM_contentCurrentPos содержит предыдущую верхнюю позицию. Я назвал это так
infoWindow.rePosition();