Нажмите за пределами отметки (или точки), чтобы закрыть что-то на Mapbox

На моем 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 ответ

Используйте обработчик события click для всей карты и 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/ ]

Другие вопросы по тегам