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 に答える