2009-08-21 4 views
0

jquery UIダイアログとGoogleマップを使用しようとしています...ユーザーがリンクをクリックすると、ダイアログが開き、地図が表示されます。jquery UIダイアログ+ Googleマップ+ IE8エラー...何ができますか?

私は多くの方法で試してみました... FFやChromeでも動作しますが、IE8では地図が灰色です。 HTMLのhead内のスクリプトの参照順序の変化の一つで

、IE8におけるそれのほんの一部マップの負荷を作る...ダイアログの前と後にGoogleマップをロードしようとしたが、何もそれは非常にです

を変更しません混乱している...誰もこの問題を抱えていますか?

ありがとうございます!

+0

IE8にはスクリプトデバッガが組み込まれています。あなたはそれを使いましたか? IE。 – Alan

+1

IE。 Omg再び。 –

+0

IE8デバッガでエラーが発生しません – AndreMiranda

答えて

2

タブのjQuery UIドキュメントにはこれが書かれており、ダイアログにも適用されると思います(ダイアログのコードを調整する必要があります)。

タブパネル自体は、ディスプレイを介して が隠されているので、その 初期化するためのいくつかの 次元計算は、隠された タブで動作しません必要とする任意の成分:任意 要素が内部報告しないようになし 実際の幅と高さ(ほとんどの場合、ブラウザが )。

簡単な回避策があります。無効な タブパネルを非表示にするには、 左揃えのテクニックを使用します。例えば。 Googleはタブが のように表示されたら、あなたも マップのサイズを変更することができマップのスタイルシート に

.ui-tabs .ui-tabs-hide { 
    position: absolute; 
    left: -10000px; 
} 

でクラス セレクター「.ui-タブ.ui-タブ非表示」のルールを置き換えますこの:

$('#example').bind('tabsshow', 
    function(event, ui) { 
    if (ui.panel.id == "map-tab") { 
    resizeMap(); 
    } 
}); 

resizeMap()は、特定のマップにGoogleマップ checkResize()を呼び出します。

+0

ありがとう、Chris!あなたの答えは他の細いものを試すのに役立ち、それはうまくいった!さて、私はダイアログを表示し、checkResize()を実行した後に! – AndreMiranda

+0

APIのV3では、「google.maps.event.trigger(map、 'resize') ' – Amir

関連する問題