他の関数を呼び出さずに、同じ関数で gmap のマーカーと情報ウィンドウを作成するとします。私はよく働きます。
しかし、関数 createMarkerInfoWin() でいくつかの操作をカプセル化したい場合は、どうすればよいですか...
私はこのように試しました:
1) ページのロード時に関数 onLoad() を呼び出します。
function onLoad(){
loadmap();
var marker = createMarkerInfoWin(); //i want to encapsulate some operations in it
marker.setMap(map);
...
}
2)
function createMarkerInfoWin(){
var marker = new marker();
var info = new infoWindow();
var html = "<div>....</div>"; //infowindow's content
Event.addlistener(marker,'click', function(){
info.open(html,marker);
});
return marker;
}
それはうまくいきません。マーカーは地図上に表示されますが、マーカーをクリックしても情報ウィンドウは表示されません。
だから私は推測します:オブジェクト情報のメモリは、関数が戻るときにリサイクルされるでしょう。
皆さん、作成操作を関数にカプセル化するより良い方法はありますか? 関数 onLoad() にすべてのコードを入れたくないだけです。
tks...