0

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 を使用して遅延させましたが、まだ機能していません。他に今できること。

4

1 に答える 1

0

変更された Infobox js ファイル

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

ここで、cM_contentCurrentPos には以前のトップ ポジションが含まれます。私はこう呼んだ

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