2013-08-29 9 views
0

我的代碼如下類型錯誤:我是不明確的JavaScript API傳單

<html> 
<head> 
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" /> 
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script> 
<script src="india.js" type="text/javascript"></script> 
</head> 
<body> 
    <div id="map1" style="width: 1100px; height: 400px"></div> 
    <script> 
     var area = L.map('map1', { 
      center : [ 27.8800, 78.0800 ], 
      zoom : 4 
     }); 

     L.tileLayer('http://a.tiles.mapbox.com/v3/raj333.map-gugr5h08/{z}/{x}/{y}.png').addTo(area); 

     var indiaLayer = L.geoJson(india, { 
      style : { 
       weight : 2, 
       opacity : 1, 
       color : 'white', 
       dashArray : '3', 
       fillOpacity : 0.8 
      } 
     }); 

     area.addLayer(indiaLayer); 

     var indiaLayer1; 

     function clickedtest() { 
      var indiaLayer = L.geoJson(india, { 
       style : { 
        weight : 2, 
        opacity : 1, 
        color : 'white', 
        dashArray : '3', 
        fillOpacity : 0.8 
       } 
      }); 

      area.addLayer(indiaLayer); 
      indiaLayer.on('click', clicked); 
      area.removeLayer(indiaLayer1); 
      removeEventListener('click', clicked, indiaLayer1); 
      return; 
     } 

     function clicked() { 
      var indiaLayer1 = L.geoJson(india, { 
       style : { 
        weight : 2, 
        opacity : 1, 
        color : 'white', 
        dashArray : '3', 
        fillOpacity : 0.1 
       } 
      }); 

      area.addLayer(indiaLayer1); 
      indiaLayer1.on('click', clickedtest); 
      area.removeLayer(indiaLayer); 
      removeEventListener('click', clicked, indiaLayer); 
      return; 
     } 
     indiaLayer.on('click', clicked); 
     indiaLayer1.on('click', clickedtest); 
    </script> 
</body> 
</html> 

這裏印度一些jeoJson文件。在這裏我想要將圖層的不透明度從0.1改爲0.8或反之亦然......但它會引發我一個錯誤....任何幫助都會被高度讚賞......我已經花了整整一天的時間,但無法獲得解。幫助

您可以將任何其他geoJson文件用於測試目的。

回答

1

您是否使用2層來改變不透明度?在這種情況下,刪除所有indiaLayer1的東西,並使用此:

indiaLayer.on('click', clicked); 

function clicked(e){ 

    var layer = e.target; 

    if (layer.style.fillOpacity == 0.1){ 
     layer.setStyle({ 
      fillOpacity: 0.9 
     }); 
    } else{ 
     layer.setStyle({ 
      fillOpacity: 0.1 
     }); 
    } 
} 
相關問題