Установить один регион не может быть выбран
У меня есть массив, заполненный регионами, которые находятся на карте
var regions = [
{name: 'BE-WV', positions: true},
{name: 'BE-OV', positions: true},
{name: 'BE-AN', positions: false},
{name: 'BE-LI', positions: true},
{name: 'BE-VB', positions: true},
{name: 'BE-BR', positions: true},
{name: 'BE-WB', positions: true},
{name: 'BE-HG', positions: true},
{name: 'BE-NA', positions: true},
{name: 'BE-LK', positions: true},
{name: 'BE-LX', positions: true},
];
И мне было интересно, можно ли создать функцию, которая проверяет регионы. Если этот регион имеет позицию: true, он должен быть выбираемым, иначе это не должно быть.
Я уже создал функцию, которая изменяет курсор мыши при наведении курсора, если он должен быть выбран или нет.
onRegionOver: function(event, code, region){
for (var i = 0; i < regions.length; i++) {
element = regions[i];
elementName = element['name'];
if ( elementName == code){
if (element['positions'] !== false){
document.body.style.cursor = 'pointer';
}
}
}
1 ответ
Я нашел решение, но оно довольно хакерское. В функции onRegionClick проверьте, имеет ли выбранная область ложную позицию.
Затем вставьте этот код в if
var m = $('#map').vectorMap('get', 'mapObject');
m.series.regions[0].elements[code].element.style.selected.fill = 'grey';
где серый - цвет невыбранных областей.