Highcharts 如何解决High Maps中的internet浏览器问题?

Highcharts 如何解决High Maps中的internet浏览器问题?,highcharts,Highcharts,地图显示在所有浏览器中,如chrome、Firefox,但地图不显示在IE11中,此代码在chrome中工作,但在IE11中不工作。一旦添加加载事件并循环数据,答案是否合理?但如果我也使用load event,它在chrome中工作 $(函数(){ var-mapData=Highcharts.maps['custom/world']; 变量数据=[{“名称”:“澳大利亚”,“状态”:“现场”}]; $(“#容器”).highcharts('Map'{ 图表:{ 活动:{ 加载:函数(){

地图显示在所有浏览器中,如chrome、Firefox,但地图不显示在IE11中,此代码在chrome中工作,但在IE11中不工作。一旦添加加载事件并循环数据,答案是否合理?但如果我也使用load event,它在chrome中工作


$(函数(){
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,那么它就不起作用了。。。