Нажмите за пределами отметки (или точки), чтобы закрыть что-то на Mapbox - PullRequest
0 голосов
/ 26 января 2019

На моем Mapbox есть 3 слоя. id: 'Map', id:'Cluster', id: 'Point'

map.on('click', 'Point', function (e) {
    $(".page-wrapper").addClass("toggled");/*show sidebar*/
  });

Этот код означает, что когда я щелкаю точку на слое id: 'Point', отображается боковая панель.

$(".page-wrapper").removeClass("toggled");/*hide sidebar*/ 

И этот код будет скрывать боковую панель при добавлении к событию.

Теперь я хочу щелкнуть в любом месте, без точки на слое. id: 'Point' Боковая панель будет скрыта.

Как я могу это сделать?

1 Ответ

0 голосов
/ 29 января 2019

Используйте обработчик событий щелчка для всей карты и функцию preventDefault:

  map.on('click', 'point', function(e) {
    e.preventDefault();
    console.log('show sidebar');
  });

  map.on('click', function(e) {
    if (e.defaultPrevented === false) {
      console.log('hide taskbar');
    }
  });

[https://jsfiddle.net/7mfb59qo/2/]

...