2014-02-18 84 views
0

我已经使用HighChart JS创建图表。我唯一的改变就是为图表中的每个系列创建动画。JQuery动画在IE8中不起作用

一切顺利,但唯一的问题是,它不能在IE8中工作。它适用于IE9,IE10和所有其他理智的浏览器。

我在这里创建了一个小提琴,如果你能看一看,会很感激。

http://jsfiddle.net/DUvQW/

这是我写的和我在那里创建了定时动画: -

chart: { 
      type: 'bubble', 
      width: 650, 
      height: 450, 
      zoomType: 'xy', 
      events: { 
       load: function (event) { 

        this.series.forEach(function (d, i) { 
         if (d.options.id == 1) { 
          setTimeout(function() { 
           d.show(); 
          }, 100); 

         } 
         if (d.options.id == 2) { 
          setTimeout(function() { 
           d.show(); 
          }, 1000); 
         } 
         if (d.options.id == 3) { 
          setTimeout(function() { 
           d.show(); 
          }, 2000); 
         } 
         if (d.options.id == 4) { 
          setTimeout(function() { 
           d.show(); 
          }, 3000); 
         } 
         if (d.options.id == 5) { 
          setTimeout(function() { 
           d.show(); 
          }, 4000); 
         } 
         if (d.options.id == 6) { 
          setTimeout(function() { 
           d.show(); 
          }, 5000); 
         } 
        }) 

       } 
      } 
     }, 
     . . . 

回答

3

IE 8不支持.forEach()迭代器阵列。您可以切换到迭代阵列的for (var i = 0; i < array.length; i++)方法,也可以安装.forEach()的polyfill。有关polyfill,请参阅this MDN page

如果切换到普通for循环,那么你也必须使用IIFE(立即执行函数表达式)来捕获一个独特的价值为d为循环的每个迭代喜欢这里:http://jsfiddle.net/jfriend00/yMRP8/

或者,您可以添加如下所示的填充.forEach()以在IE8中添加对它的支持:http://jsfiddle.net/jfriend00/6kybR/。 jsFiddle不能在IE8中工作,因为jsFiddle本身不支持IE8。你将不得不在你自己的实际代码中测试IE8中的polyfill。

+0

非常感谢你。我知道这可能会问很多,但你认为你可以根据它调整小提琴吗? – Steve

+0

@Steve - 两个不同的jsFiddle解决方案添加到我的答案中。 – jfriend00

+0

非常感谢。 – Steve