2011-10-21 76 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> 

回答