イムonEachFeature
機能で抽出geojson
からテーブルを取得しようと、それは警告とそれを表示するに動作しますが、私は事業部の内側にそれを得るために、getElementsByClassName
を試みたが、何もリーフレットonEachFeatureテーブル情報をDivに登録する?
を示していない私は、リーフレットのサイドバーでリーフレットを使用していますプラグイン
おかげ
var tbl1 = "";
var proy = L.geoJSON(json_Obras, {
onEachFeature: function(feature, layer) {
tbl1 = '<table><tr><th scope="row">OBRA </th><td>' + (feature.properties['OBRA'] !== null ? Autolinker.link(String(feature.properties['OBRA'])) : '') + '</td></tr>'
}
}).addTo(map);
proy.on('click', function() {
sidebar.show();
})
map.on('click', function() {
sidebar.hide();
});
document.getElementsByClassName('t1').innerHTML = tbl1;
ボタンクリック
<input id="btn" class="gral" type="button" name="answer" value="DATA" />
<div id="tabla" class="t1" style="display:none;">
</div>
0123でのdivを表示
jqueryのクリック機能
$('.gral').click(function() {
$('.t1').toggle('slow', function() {
});
});
UPDATE
私はprevious questionに基づいて、これを行う方法を見つけることができた:
var sidebar = L.control.sidebar('sidebar', {
closeButton: false,
position: 'left'
});
map.addControl(sidebar);
var ptsty = {
radius: 8,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8
};
function onEachFeature(feature, layer) {
layer.on({
click: openSidebar
});
}
var lay1 = L.geoJson(json_Obras,{
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, ptsty)
},
onEachFeature: onEachFeature
}).addTo(map);
function openSidebar(e) {
sidebar.toggle();
sidebar.setContent('<div id="sidebarin"><h2>' + e.target.feature.properties.OBRA + '</h2></div>');
}
あなたが生成されているテーブルには、間違った方法です。各反復で、フルテーブルをtbl1変数に割り当てています。 – SamaBalaYam
あなたは正しいです、何かアドバイス? divが表示されている場合は、トグルコールバックチェックで – fcr
を呼び出し、document.getElementsByClassName( 't1')を配置します。innerHTML = tbl1;そうでなければ空です。 – SamaBalaYam