13

我正在尝试加载特定区域地图onRegionClick。但是,似乎在进行更改后该区域正在加载。这是我的代码:

function switchMap(code) {
    $.getScript('maps/'+ code +'.js');
    $('#map').vectorMap({map: code});
}

$('#map').vectorMap({
    map: 'world_mill_en',
    onRegionClick: function(event, code) {
        if (code == "CA") {switchMap(code)}
        if (code == "AF") {switchMap(code)}
        if (code == "AL") {switchMap(code)}
        if (code == "AR") {switchMap(code)}
        if (code == "CH") {switchMap(code)}
    }
});

控制台输出是这样的:

Uncaught Error: Attempt to use map which was not loaded: CA world-map.js:82

OPTIONS file:///C:/Users/D-4/Desktop/find-a-bible/maps/CA.js?_=1364318443130  jquery-1.8.2.js:8416
4

2 回答 2

4

为了使用 switchMap 函数,您必须在文件完全加载后初始化新的 vectorMap,从而在回调中初始化它。.

function switchMap(code) {
    $.getScript('maps/'+ code +'.js' , function (data){
        $('#map').vectorMap({map: code});
    });
}
于 2014-07-28T13:05:35.070 回答
1

您应该只放置 div 的高度或宽度来正确渲染地图。jvectormap 将自动计算缺失的维度以保持地图的纵横比。如果您使用 javascript 动态更改高度,请确保调用updateSize您的地图对象。请注意,您可以使用此获取地图对象,var mapObject = $('#world-map-gdp').vectorMap('get', 'mapObject');然后调用mapObject.updateSize();

于 2015-01-06T14:42:53.797 回答