jQuery jVectorMap Загрузка динамической карты

Используя jVectorMap, у меня есть карта Соединенных Штатов, после чего вы нажимаете на штат, а затем появляется всплывающее окно для карты этого отдельного штата.

Всплывающее окно загружается через AJAX (без использования jQuery), и происходит следующее:

  1. Скрипт выполняется для карты. Это действительно длинный файл, но он является частью следующего:

    $.fn.vectorMap('добавить карту',....

  2. Скрипты для остальной части всплывающего окна расположены ниже.

    var map = new jvm.WorldMap({ container: $('.stateMap'), map: 'indiana', backgroundColor:'none', zoomOnScroll:false, series: { region: [{ атрибут: 'fill', normalizeFunction: 'многочлен', }] } });

  3. Это выполняется и дает следующую ошибку:

    Ошибка: попытка использовать карту, которая не была загружена: индиана

Я могу загрузить все карты до того, как произойдет любой из вызовов AJAX, но я бы предпочел не загружать 51 карту одновременно.


person Adam Dally    schedule 18.12.2013    source источник


Ответы (1)


В конце концов я отказался от использования функции vectorMap. И хотя я хотел бы узнать, как заставить это работать, тем не менее я доволен тем, что у меня получилось.

Я решил добавить функцию addMap к объекту jvm. В начале это выглядит следующим образом:

var jvm={addMap:function(n,m){jvm.WorldMap.maps[n]=m},//...

Поскольку я недостаточно знаком с тонкостями jVectorMap, это может быть слишком большим хаком, игнорирующим многие вещи, но он работает для карт SVG, которые я загружаю. Вы можете использовать его следующим образом:

jvm.addMap(mapName,{mapData});
person Adam Dally    schedule 07.01.2014