ここで注意すべき点がいくつかあります。div 要素.focus()
でクリック アクションを使用またはトリガーするだけで#map
はうまくいきません。これらのアクションは、マップが実際に DOM にレンダリングされる前に行われるからです。したがって、最初に認めるべきことはtilesloaded
、Google マップ ライブラリが提供するイベントの使用です。
google.maps.event.addListener(map, 'tilesloaded', function() {
//do actions
});
$('#map').click()
私が見つけた 2 番目のことは、イベント リスナー内に追加することはできないということです。これは#map
、コンテナ div ですが、実際には Google マップ スクリプトがその上に他の div の全体をレンダリングするためです (これらはより高い z インデックスを持ち、実際にマップ タイルを保持するものでもあります)。ちょっとしたハッキングと jquery を使用して、タイルを含む div に絞り込み、その div でクリック イベントをトリガーすることができます...結果のコードは次のとおりです。
google.maps.event.addListener(map, 'tilesloaded', function() {
$("#map").children().children().first().children().trigger('click');
});
Chrome の開発ツールを使用して、タイルを含む div に絞り込み、jquery のchildren()
メソッドを使用して からその div にトラバースしました#map
。そのコードを init 関数に貼り付ければ、準備完了です。これは、ソリューションの実際の例を含むJSfiddleです。