2012-03-16 9 views
1

私はAJAXを使用してページを動的に読み込みます。 (私は道でのjQueryを使用しています)GMap API v3でGoogleマップを再初期化できません

$.post('./', { 'page': 'home' }, function(e){ 
    $('#container').html(e); 
},'html'); 

の一つは:私は、動的にロードされたHTMLをダンプし、特定の要素があります、それは

<div id="container"> 
</div> 

だから、私はこのようなページをロードする#containerと呼ばれています私のページには、GMap API v3を使って埋め込まれたGoogle Mapがあります。基本的には、この同じページをロードするたびにこのマップを通常のように表示したいので、GMapを再初期化する関数を追加しました。しかし、私が別のページを開いたとき、このページに戻って、地図が崩れます。 GMapのインスタンスを破壊しなければならないと私は信じています。そのページに戻ってきたら、それは新鮮なものになるでしょう。

私の問題は、マップを破壊する方法が見つからないということです。実際には方法があるのでしょうか、あるいは別のアプローチ、あるいはおそらく回避策がありますか?

ご協力いただきありがとうござい

EDIT:

は、ここではGMapの http://imageshack.us/photo/my-images/707/firstoc.jpg/

の最初のロード時のようになります。そして、ここで、それは別のページ(AJAX負荷)を訪問した後どのように見えるかだ方法ですと、前のページに戻る:http://imageshack.us/photo/my-images/864/secondy.jpg/

灰色の領域が問題です。それはちょうどそこに現れ、あなたはそれをドラッグすることはできません。私は、GMapオブジェクトがページを再ロードする前に破壊されて、それが崩れないようにする必要があると思います。しかし、私は方法を知らないだけです。

+0

'$ .post(...)'にアポストロフィがありませんか?そして、あなたはどのように "つぶやき"を意味するのですか?スクリーンショットが役に立ちます。リンクが良いでしょう。 –

+0

@AndrewLeach申し訳ありませんが、それは './'である必要があります。編集してスクリーンショットを追加しました。 –

答えて

0

私は同様の問題がありました。私のソリューションが役立つかもしれません。

私は 'pageinit' を使用していた。

私が必要とする 'pageshowの' でした
$('.page-map').live('pageinit', function() { 
...do stuff. 
} 

:ここにこのコードのサンプルで

https://stackoverflow.com/questions/9713930/why-do-my-markers-end-up-at-the-top-left-corner-if-i-navigate-back-via-ajax

+0

ありがとう、私はこれを試してみます.. –

+0

それは実際にはモバイルソリューションではありません、デスクトップだけ –

+0

彼らは同様の問題のように見えます。私はそれがAjaxのナビゲーションのためだと示唆したいと思います。より多くのコードを提供できますか? http://jsfiddle.net/を使用しても、あなたのトラブルシューティングに役立ちます。 – Gareth

0

ルック:jquery-ui-map-v_3

これは唯一の解決策ではない、もう1つのw以前のリンクで動作する可能性があります。

<script type="text/javascript"> 
     $('#page_id').live("pageshow", function() { 
       $('#map_canvas').gmap({'center': '59.3426606750, 18.0736160278'}); 
     }); 
</script> 

私はPhoneGap FrameworkとjQuery Mobileで開発中で、gyaresuが言ったように、これは私の人生を救った。

Good Luck。

関連する問題