Показать карту в fancybox

У меня на мой взгляд fancybox.

Когда я его открываю, я должен показать на нем карту.

Вот div для fancybox

<div id = "markers_map" style = "display:none">
  <div id = "map_screen">
    <div class = "clear"></div>

  </div>
</div>

И я открываю его и пытаюсь показать карту вот так:

$('#b_google_map_table').on("click", function() {
  $.fancybox.open($("#markers_map"), {
    width: 800,
    height: 500
  });
  mapboxgl.accessToken = token;
  let map = new mapboxgl.Map({
    container: 'markers_map',
    style: 'mapbox://styles/mapbox/streets-v9',
    center: [-96, 37.8],
    zoom: 14
  });
});

Он открывает fancybox, но не может загрузить карту. В чем моя проблема?

ОБНОВИТЬ

Пытался переписать вот так

$("#b_google_map_table").on("click", function(){
  $.fancybox.open($("#markers_map"), { width: 800,height:500, afterShow(){
    mapboxgl.accessToken = token;
    let map = new mapboxgl.Map({
          container: "map_screen",
          style: "mapbox://styles/mapbox/streets-v9",
          center: [-96, 37.8],
          zoom: 14
    });
  }, 
});
});

Но он все еще не показывает карту в fancybox

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
135
1

Ответы 1

Похоже, вам нужно использовать обратный вызов afterShow, см. Примеры здесь http://fancyapps.com/fancybox/3/docs/#events

Что-то вроде этого:

$('#b_google_map_table').on("click", function() {

  $.fancybox.open(
    src: "#markers_map",
    type: 'inline', 
    afterShow : function() {

      mapboxgl.accessToken = token;
      let map = new mapboxgl.Map({
        container: 'markers_map',
        style: 'mapbox://styles/mapbox/streets-v9',
        center: [-96, 37.8],
        zoom: 14
      });

    }
  });

});

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