奇妙な問題があり、はっきりと見えていないだけかもしれません。他の人に私のコードを見てもらうことは、間違いなく常に役に立ちます。とにかく、オプションを含むドロップダウン メニューがあります。言うまでもなく、onchange は情報ウィンドウを開く関数を呼び出します。クリックのリスナーは、情報ウィンドウを表示するときに問題なく動作しますが、handleSelected() 関数は何も表示しません。
<select size='37' id='dpMenu' onchange='handleSelected(this)'>
これで、マーカーを作成する関数の外にマーカーの配列ができました。
var gmarkers = [];
var oldInfoWin;
var map;
function createEpiMarker(map,point,epi_icon,html,name,detail,iqrid) {
var epimarker = new google.maps.Marker({
position: point,
map: map,
icon: epi_icon
});
epimarker.infowindow = new google.maps.InfoWindow({content: html });
google.maps.event.addListener(epimarker, "click", function() {
epimarker.infowindow.open(map, epimarker);
oldInfoWin = epimarker.infowindow;
infoWindowOpen = true;
});
gmarkers.push(epimarker);
}
このコードは、ドロップダウン メニューの選択を処理します。
function handleSelected(opt){
var i = opt[opt.selectedIndex].index - 1;
if(i != -1){
gmarkers[i].infowindow.open(map, gmarkers[i]);
oldInfoWin = gmarkers[i].infowindow;
infoWindowOpen = true;
}
}