2016-01-28 5 views
0

Как установить флажок элемента управления в момент щелчка на кластере?Листовка JS: при щелчке на маркергруппегруппа установите/снимите флажок control.layer.

Пример: Когда я нажимаю на свой кластер «Bosquet Creux» на своей карте, я хочу, чтобы он проверил «Bosquet Creux» в моем управлении уровнем.

My Leaflet Map

Плагин используется: MarkersCluster

var Region1 = new L.MarkerClusterGroup({ showCoverageOnHover: false, disableClusteringAtZoom: 4, maxClusterRadius: 300, 
iconCreateFunction: function(cluster){ 
    var Region1 = cluster.getAllChildMarkers(); 
     var n = null; 
     for (var i = 0; i < Region1.length; i++) 
      return L.divIcon({ html: n, className: 'Region1', iconSize: L.point(268, 34)}); 

     Region1.on('click', function(){if (map.hasLayer(Region2)) {map.removeLayer(Region2);}}); 
} 
}); 

Извините за мой плохой английский.

+0

Добавьте это в вашей функции обратного вызова 'Region.on ('нажмите', функция() {/ * где-то здесь * /})': http://stackoverflow.com/questions/22724768/activate-or-check-checkbox-with-onchange-event-from-dropdown – chrki

+0

Я добавил это: 'Region1.on ('click', function() {(map.addLayer (Region1) .checked = true);}); 'но он не работает. –

+0

И это: 'Region1.on ('click', function() {(region1.setVisibility (checked));});' тоже не работает –

ответ

0

Для проверки щелчка на кластере вы можете прослушивать событие clusterclick, как описано в docs. Затем вы можете установить флажок с document.querySelector('#id of checkbox') (или document.getElementById()) и включить его, установив его значение .checked="checked" или выключив его с помощью .checked=false.

Поместите этот код вне new L.MarkerClusterGroup() где-то в вашем Javascript:

Region1.on('clusterclick', function (a) { 
    if (!map.hasLayer(Region2)) { 
     map.addLayer(Region2); 
     map.removeLayer(Region1); 
     document.querySelector('#region1checkbox').checked="checked"; 
    } 
}); 

Другого Примечание: Ваш Region1.on() в коде вы публикуемый не выполняются, потому что есть return заявления перед ним, это вызовет функцию верните значок, и он закончится прямо там.

Вот демо: http://plnkr.co/edit/83oEg9tbeAeGwq8ZPPmi?p=preview

+0

Привет, Спасибо за помощь, он отлично работает! –

+0

Привет @OziBaldone, я рад слышать, что он работает! Если вы считаете, что этот ответ решает этот вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419) – chrki

 Смежные вопросы

  • Нет связанных вопросов^_^