2011-10-21 75 views
1

我想將事件監聽器應用於多個圖層(例如:編號爲layer1至圖層8),嘗試做一個數組並且不起作用。 KMLlayers只在打開它們時纔會觸發,所以也許陣列不是正確的方式,但不知道如何。將事件監聽器應用於Google地圖中的多個KMLlayers

if (document.mapControlBox.checkbox1.checked) { 

    /* Load the layer */ 
    var layer1 = new google.maps.KmlLayer('theURL', {suppressInfoWindows: true}); 
    layer1.setMap(map); 
    layer1.set('preserveViewport', true); 

}; 

    /* repeat, repeat... */ 

    /* try to select all layers */ 
for (var i = 1; i < layer.length; i++) { 
    var layers = layer[i]; 
google.maps.event.addListener(layers, 'click', function(kmlEvent) { 
    var text = kmlEvent.featureData.description; 
    showContentWindow(text); 
    }); 
} 

     /*default function from Gmap example */ 
    function showContentWindow(text) { 
    var sidediv = document.getElementById('content_window'); 
    sidediv.innerHTML = text; 
    }; 

相關的HTML:

<form name="mapControlBox"> 
    <ul> 

     <li> 
      <input type="checkbox" name="checkbox1" value="checkbox1" onclick="displayMaps();" /> 
      <label class="mapoption">Checkbox1<label> 
     </li> 
        /*etc etc*/ 
      </ul> 

回答