我正在使用JVectormap,並試圖通過AJAX動態加載數據。 我的AJAX調用一個返回結果字符串的PHP腳本。 響應示例:{「US」:「29.84」,「BE」:「24.52」,「FR」:「21.42」,「GB」:「15.66」}在JVectormap中動態加載JSON數據與硬編碼 - 未捕獲TypeError:無法讀取未定義的屬性「元素」
當我使用console.log(dataset)我看到確切的正確字符串作爲上面的例子在控制檯中,但數據沒有加載地理圖表上,我得到的錯誤「遺漏的類型錯誤:無法讀取屬性‘元素’的未定義」
當我複製從控制檯粘貼值並在我的代碼中添加一行代碼 var dataset = {「US」:「29.84」,「BE」:「24.52」,「FR」:「21.42」,「GB」:「15.66」 }; 然後圖表加載完美。
因此,當我硬編碼的值都可以正常工作,但是當我使用動態返回的數據集時,它不起作用,儘管它們是彼此精確的副本。
我的JavaScript代碼,而無需硬編碼值
信息(空地圖並在控制檯上面的mentionned錯誤這個結果):該功能RenderChart(數據集)從它裝載AJAX另一部分叫「數據集」中的數據。因此數據集包含具有國家代碼和值的字符串,您也可以使用console.log(dataset)查看該字符串;
function RenderChart(dataset)
{
console.log(dataset);
$('#world-map').vectorMap({
map: 'world_mill',
backgroundColor: "#3C454D",
series: {
regions: [{
values: dataset,
scale: ['#25823b', '#fce853', '#e01402'],
normalizeFunction: 'polynomial'
}]
},
onRegionTipShow: function(e, el, code){
el.html(el.html()+' (Threat - '+dataset[code]+'%)');
}
});
}
我與硬編碼值代碼(一個很好的圖表在這一個結果)
function RenderChart(dataset)
{
console.log(dataset);
dataset = {"US":"29.84","BE":"24.52","FR":"21.42","GB":"15.66","DE":"2.81"};
$('#world-map').vectorMap({
map: 'world_mill',
backgroundColor: "#3C454D",
series: {
regions: [{
values: dataset,
scale: ['#25823b', '#fce853', '#e01402'],
normalizeFunction: 'polynomial'
}]
},
onRegionTipShow: function(e, el, code){
el.html(el.html()+' (Threat - '+dataset[code]+'%)');
}
});
}