2

[こちらのレイヤーに関する QA][1] も含めて、自分でこれを理解しようとしましたが、スクリプトが機能しない理由がわかりません。

レイヤーとして表示される 2 つのフュージョン テーブルがあります。選択時にレイヤーのオン/オフを切り替える 2 つのクリックボックスが必要です。

誰かが私のコードを見て、何が問題なのかを見つけられるかどうかを確認できますか? 本当に感謝しています!:)

ありがとう。

<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="UTF-8">
    <h3>new vs old layers</h3>
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.google.com/maps/api/js?key=AIzaSyDjB2uAt9B6cFcUiJAgANg63qNQtiF6v24&sensor=false"></script>
    <script type="text/javascript">
    function toggleLayer(this_layer){
      if(this_layer.getMap()) {
        this_layer.setMap(null)
      } else {
        this_layer.setMap(map);
      }
    }
    function initialize() {
      var map = new google.maps.Map(document.getElementById("map_canvas"), {
        center: new google.maps.LatLng(51.765, -1.384),
        zoom: 9,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      });
      var layer1 = new google.maps.FusionTablesLayer({
        query: {
          select: 'col2',
          from:'1NxFkNmdXHOvvWNnaWscabdxUDQqDul1BpiINtHI'
        },
        map: map
      });
      var layer2 = new google.maps.FusionTablesLayer({
        query: {
          select: 'col2',
          from:'1aM37b7PzUg3nqF14L4GzDbSrUGAfWOuIGcbkV2c'
        },
        map: map
      });
    }
  </script></head>
  <body onload="initialize();">
    <div>
      <input type="checkbox" id="show_hide_layer1" checked onchange="toggleLayer(layer1)"/>
      <label> old boundaries </label>
      <input type="checkbox" id="show_hide_layer2" checked onchange="toggleLayer(layer2)"/>
      <label> new boundaries </label>
    </div>
    <div id="map_canvas" style="width:80%; height:80%"></div>
  </body>
</html>
4

1 に答える 1

2

javascriptエラーが発生します:

layer1 is undefined.

最初の問題は、これらの変数がHTMLイベントハンドラーで使用されるためにグローバルである必要があることです。

マップ変数と同じです。

実例

于 2012-11-08T14:27:17.327 に答える