Используйте jquery для выбора и локализации имени слоя листовок

Я использую leafletjs - http://leafletjs.com/

Мне нужно локализовать слой и наложить текст на язык, выбранный пользователем.

Код листовки такой:

// create map
map = L.map('map', {
    center: [dlat, dlng],
    zoom: dzoom,
    layers: [osmap, markersgroup, POIgroup, mylayergroup, fencesgroup]
});
var baseLayers = {
    "Normal": osmap,
    "Satellite": satellite
};

var overlays = {
    "All Markers": markersgroup,
    "Online Markers": onlinegroup,
    "Offline Markers": offlinegroup,
    "Live Markers": livegroup
};

Как вы можете видеть, названия оверлея установлены «Все маркеры», «Онлайн-маркеры» и т. Д. Мне нужно иметь возможность выбрать их и изменить на французские, испанские строки.

HTML-код отображается следующим образом:

<div class="leaflet-control-layers-overlays">
<label>
<input type="checkbox" class="leaflet-control-layers-selector" checked="">
<span> All Markers</span>
</label>
<label>
<input type="checkbox" class="leaflet-control-layers-selector">
<span> Online Markers</span>
</label>
<label>
<input type="checkbox" class="leaflet-control-layers-selector">
<span> Offline Markers</span>
</label>
<label>
<input type="checkbox" class="leaflet-control-layers-selector">
<span> Live Markers</span>
</label>
</div>

Могу ли я выбрать span в каждом label и переименовать его вручную?


person Vince Lowe    schedule 18.06.2013    source источник


Ответы (1)


Только что сделал это

$(".leaflet-control-layers-overlays span").eq(0).text(strings[strLang].allMarkers);
$(".leaflet-control-layers-overlays span").eq(1).text(strings[strLang].onlineMarkers);
$(".leaflet-control-layers-overlays span").eq(2).text(strings[strLang].offlineMarkers);
$(".leaflet-control-layers-overlays span").eq(3).text(strings[strLang].liveMarkers);
person Vince Lowe    schedule 18.06.2013
comment
Пришел сюда в надежде на лучшее решение. Было бы неплохо, если бы эти промежутки были помечены хотя бы внутренним идентификатором листовки. - person Jeff; 03.07.2014