Highcharts 如何解决High Maps中的internet浏览器问题?
地图显示在所有浏览器中,如chrome、Firefox,但地图不显示在IE11中,此代码在chrome中工作,但在IE11中不工作。一旦添加加载事件并循环数据,答案是否合理?但如果我也使用load event,它在chrome中工作Highcharts 如何解决High Maps中的internet浏览器问题?,highcharts,Highcharts,地图显示在所有浏览器中,如chrome、Firefox,但地图不显示在IE11中,此代码在chrome中工作,但在IE11中不工作。一旦添加加载事件并循环数据,答案是否合理?但如果我也使用load event,它在chrome中工作 $(函数(){ var-mapData=Highcharts.maps['custom/world']; 变量数据=[{“名称”:“澳大利亚”,“状态”:“现场”}]; $(“#容器”).highcharts('Map'{ 图表:{ 活动:{ 加载:函数(){
$(函数(){
var-mapData=Highcharts.maps['custom/world'];
变量数据=[{“名称”:“澳大利亚”,“状态”:“现场”}];
$(“#容器”).highcharts('Map'{
图表:{
活动:{
加载:函数(){
for(设i=0;i{
if(el['name']==this.series[1].data[i].name){
如果(此.series[1].data[i].status=='Live'){
el.update({color:“浅绿色”});
}
}
返回el
})
}
}
}
},
系列:[{
名称:'国家',
mapData:mapData,
}, {
名称:“国家/地区选项”,
可见:假,
数据:数据
}]
});
});
答案很简单-您使用的是IE11:caniuse.com/#feat=arrow函数不支持的arrow函数
如果你想让你的代码在IE11上运行,仅仅把箭头函数改为普通函数是不够的,因为你会有不同的这个。使用箭头函数时,此与load()函数中的相同。但是当您定义一个普通函数()时(而不是箭头函数),您的this将被更改。这就是为什么您需要定义var chart=this;在load()函数中,在少数地方将此替换为图表。这里有工作代码:
chart: {
events: {
load: function() {
var chart = this;
for (let i = 0; i < this.series[1].data.length; i++) {
this.series[0].data.forEach(function(el) {
if (el['name'] == chart.series[1].data[i].Name) {
if(chart.series[1].data[i].status == 'Live'){
el.update({color: "lightgreen"});
}
}
return el
})
}
}
}
},
图表:{
活动:{
加载:函数(){
var图表=此;
for(设i=0;i
使用IE11演示版:Hi@Nayem Shaiky,你能为你的问题添加更多细节吗?Hi@toti08你需要什么..?在IE和chrome两个方面都很好。就像其他人一样。在Chrome和IE11上工作良好。请更精确地描述你到底有什么问题?如果我使用load event,那么它就不起作用了。。。