2013-03-26 98 views
13

我想加载特定区域地图onRegionClick。但是,看起来好像该区域在更改后加载。这里是我的代码:加载区域点击另一个jvectormap

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 
+0

检查您的页面中是否有jquery-jvectormap-us-mill-en.js“>>。 – 2013-10-19 12:57:10

回答

4

为了使用switchMap功能,你必须初始化新vectorMap文件完全加载后,从而intializing它在一个回电话。 。

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

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