0

JSON オブジェクトを介して生成された map の各レイヤーの説明があります。これらのコンテナーのすべての html を生成します。これには、マップ、凡例、および説明が含まれます。

html_description += '<div ' + hide + ' id="'+ map_div_id + '_description_' + id + '">' + layer_info.description + '</div>';

 // Set the description from the layer info
 $('#' + map_div_id + '_description').html(html_description);

次に、特定の説明のみを表示したい(表示されているレイヤーに応じて)。したがって、以下は機能するはずです(私のコンソールデバッガーで機能するため)。

 // Hide Descriptions 
 $('#' + map_div_id + '_description div').hide();
 $('#' + map_div_id + '_description_' + visible).show();            

 // Show Proper Description
 console.log('#' + map_div_id + '_description_' + visible);
 console.log($('#' + map_div_id + '_description_' + visible));

また、奇妙なことは、見出しコンテナを操作できることです:

// THIS WORKS?!
$('#' + map_div_id + '_description').hide();

何か案は?

http://jsfiddle.net/PazSs/2/

4

3 に答える 3

0

jsFiddle をありがとう。

調査するために変更しました。これが私のコピーです。

http://jsfiddle.net/PazSs/8/

あなたの問題はあなたのdynamic_layer配列にあると思います。jsFiddle のコードをステップ実行したところ、その配列には要素がありません。

結果はあなたが呼び出すときです

dynamic_layer[map_div_id].setVisibleLayers(layer_id);

未定義の結果 (null) を逆参照しているため、クラッシュします。

dynamic_layer上記にさらにデータを入力していることがわかります。

if (typeof geo_server != 'undefined' && geo_server != null) {
  gp_server = gis_server + '/' + geo_server;
  gp = new esri.tasks.Geoprocessor(gp_server);
} else {
  // Adds a dynamic layer
  dynamic_layer[map_div_id] = new esri.layers.ArcGISDynamicMapServiceLayer(full_map_server);
  map[map_div_id].addLayers([dynamic_layer[map_div_id]]);
}

dynamic_layerこれは、オブジェクトを配列に詰め込む唯一の場所のように思われるので、そこから始めます。ロジックをチェックして、必要に応じて常にレイヤーを配置してください。

それがうまくいくかどうか教えてください!

于 2013-05-07T19:43:13.100 に答える