2017-05-31 142 views
0

我正在使用Highcharts进行项目。一切工作正常,然后,没有理由(我没有改变任何东西),它不再工作(部分)。 我认为问题出在我如何加载我的js,但我找不到如何加载它们。未捕获的类型错误:c.color.tweenTo不是函数

我得到2个模块,其显示速度和驱动车辆的转速。 In this picture,我们可以看到只有一个用于加载rpm。之前,其中2人正在加载。 此外,我正在与Ajax合作,让它在现场直播,它正在工作,但现在它不再工作。

下面是我在控制台中的错误:“遗漏的类型错误:c.color.tweenTo不是一个函数”。

首先,这里是我的脚本与Highcharts:

$(function() { 

     $(window).on('load resize', function(){ 
      var div = $('#container-speed'); 
      //div.height(div.width() * 0.75); 
      div = $('#container-rpm'); 
      //div.height(div.width() * 0.75);   
     }); 

     var gaugeOptions = { 

      chart: { 
       type: 'solidgauge' 
      }, 

      title: null, 

      pane: { 
       center: ['50%', '50%'], 
       size: '100%', 
       startAngle: -90, 
       endAngle: 90, 
       background: { 
        backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE', 
        innerRadius: '60%', 
        outerRadius: '100%', 
        shape: 'arc' 
       } 
      }, 

      tooltip: { 
       enabled: false 
      }, 

      yAxis: { 
       stops: [ 
        [0.1, '#55BF3B'], // green 
        [0.4, '#DDDF0D'], // yellow 
        [0.7, '#DF5353'] // red 
       ], 
       lineWidth:0, 
       minorTickInterval: null, 
       tickAmount: 2, 
       title: { 
        y: -70 
       }, 
       labels: { 
        y: 16 
       } 
      }, 

      plotOptions: { 
       solidgauge: { 
        dataLabels: { 
         y: 5, 
         borderWidth: 0, 
         useHTML: true 
        } 
       } 
      } 
     }; 

     var chartSpeed = Highcharts.chart('container-speed', Highcharts.merge(gaugeOptions, { 
      yAxis: { 
       min: 0, 
       max: 200, 
       title: { 
        text: 'Speed' 
       } 
      }, 

      credits: { 
       enabled: false 
      }, 

      series: [{ 
       name: 'Speed', 
       data: [0], 
       dataLabels: { 
        format: '<div style="text-align:center"><span style="font-size:25px;color:' + 
         ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y}</span><br/>' + 
          '<span style="font-size:12px;color:silver">km/h</span></div>' 
       }, 
       tooltip: { 
        valueSuffix: ' km/h' 
       } 
      }] 
     })); 

     var chartRpm = Highcharts.chart('container-rpm', Highcharts.merge(gaugeOptions, { //{y:.1f} 
      yAxis: { 
       min: 0, 
       max: 7000, 
       title: { 
        text: 'RPM' 
       } 
      }, 

      series: [{ 
       name: 'RPM', 
       data: [0], 
       dataLabels: { 
        format: '<div style="text-align:center"><span style="font-size:25px;color:' + 
         ((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y:.f}</span><br/>' + 
          '<span style="font-size:12px;color:silver">tour/min</span></div>' 
       }, 
       tooltip: { 
        valueSuffix: ' revolutions/min' 
       } 
      }] 
     })); 

     setInterval(function() { 
      var vitesse = document.getElementById('myValues').value; 

      var point, 
       newVal, 
       inc; 
      if (chartSpeed) { 
       point = chartSpeed.series[0].points[0]; 
       inc = Math.round((Math.random() - 0.5) * 100); 
       newVal = point.y + inc; 
       var vitessee =Math.round(vitesse); 
       point.update(vitessee); 
      } 

      var rpm = document.getElementById('rpm').value; 
      if (chartRpm) { 
       point = chartRpm.series[0].points[0]; 
       inc = Math.round((Math.random() - 0.5) * 100); 
       newVal = point.y + inc; 

      var rpmm =Math.round(rpm); 

       point.update(rpmm); 
       } 
      }, 2000); 
     }); 

这里是我的ajax:

function auto_load(){ 

     $.ajax({ 
      url: "traite.php", 
      cache: false, 
      success: function(data){ 
       data = JSON.parse(data); 

       $("#myValues").val(parseInt(data[0].vitesse)); 
       $("#rapport").html('<label style="font-size: 20px">Rapport de vitesse : <br /><span style="font-size: 30px;">' + data[0].rapport + '</span></label>'); 

       if (data[0].tour_minute > 2000) 
        $("#conseil").html('<h3>Il serait temps de passer la vitesse</h3>'); 
       else 
        $("#conseil").html(''); 


       $("#rpm").val(data[0].tour_minute); 
       $("#conso").html('<label style="font-size: 30px">Consommation : <br /><span style="font-size: 50px;">' + data[0].consomation + '</span> L/100km </label>'); 

       var poll = parseInt(data[0].consomation * 0.7 * 3.67 * 10); 
       $("#pollution").html('<label style="font-size: 30px">Rejet de CO2 : <br /><span style="font-size: 50px;">' + poll + '</span> gCO2/km </label>'); 

       $(".round").html(); 
      } 
     }); 
    } 

下面是如何加载我的JS:

<script src="js/jquery.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 

<script src="test2.js"></script> 

<script src="https://code.highcharts.com/highcharts-more.js"></script> 
<script src="https://code.highcharts.com/modules/solid-gauge.js"></script> 

脚本test2.js是初始化我想要的图表

我已经搜索并尝试重新排列js,但它没有解决问题。 我试图把solid-jauge.js放在highcharts-more.js之前,但是我在控制台中得到了另一个错误:“Uncaught TypeError:c.init不是函数”。

我搜索了一个星期,试图解决这个问题,但我似乎无法找到的错误。

在此先感谢的人谁用自己的时间来帮助我! 如果错误只是一个简单的错字或类似的东西,我很抱歉,如果你已经在所有这些代码中搜索为零。

+0

你定的代码没有在那里包含类似'c.color.tweenTo'东西。所以它很混乱 –

+0

'c.color.tweenTo'和'c.init'在test2.js脚本中,但由于它是一个混乱的混乱,我没有把它放在这里。 – Zackarocco

+0

只有当没有添加相应的库文件时才会发生这种情况,或者在此第三方库之前没有添加jQuery库。 –

回答

1

我有同样的问题,你想通了这是由于CDN托管固体guage.js最近正在更新,并与我所用的本地highcharts.js不兼容。要修复它,请从Highcharts(https://www.highcharts.com/download)中拉取源代码,并在您的项目中本地包含这些库。因此,而不是:

<script src="https://code.highcharts.com/highcharts.js"></script> 
<script src="https://code.highcharts.com/highcharts-more.js"></script> 
<script src="https://code.highcharts.com/modules/solid-gauge.js"></script> 

用途:

<script src="lib/highcharts.js"></script> 
<script src="lib/highcharts-more.js"></script> 
<script src="lib/solid-gauge.js"></script> 
相关问题