2014-01-17 4 views
0

Я хочу использовать jqPlot в дополнение к jQuery для отображения диаграмм и т. Д.jqPlot работает только после обновления страницы

После добавления всех файлов я запускаю свой код, страница пуста. Я нажимаю кнопку «Обновить», появляется диаграмма.

Я включил все файлы в моем <head>:

<script class="include" type="text/javascript" src="~/Scripts/jqPlot/jquery.jqplot.min.js"></script> 
    <script class="include" type="text/javascript" src="~/Scripts/jqPlot/jqplot.pieRenderer.min.js"></script> 
    <script class="include" type="text/javascript" src="~/Scripts/jqPlot/jqplot.donutRenderer.min.js"></script> 
    <script class="include" type="text/javascript" src="~/Scripts/jqPlot/excanvas.min.js"></script> 

наряду с некоторыми ЯШ:

<script> 
     $(document).ready(function() { 
      var data = [ 
       ['Heavy Industry', 12], ['Retail', 9], ['Light Industry', 14], 
       ['Out of home', 16], ['Commuting', 7], ['Orientation', 9] 
      ]; 
      var plot1 = jQuery.jqplot('chart1', [data], 
       { 
        seriesDefaults: { 
         // Make this a pie chart. 
         renderer: jQuery.jqplot.PieRenderer, 
         rendererOptions: { 
          // Put data labels on the pie slices. 
          // By default, labels show the percentage of the slice. 
          showDataLabels: true 
         } 
        }, 
        legend: { show: true, location: 'e' } 
       } 
      ); 
     }); 
    </script> 

Наконец в моем <body>:

<div id="chart1" style="height:300px; width:500px;"></div> 

Насколько я понимаю, я испортил порядок файлов, потому что они загружаются после обновления. Диаграмма НЕ появляется в IE9, даже после обновления (да, я включил excanvas.js)

Кто-нибудь может мне помочь?

Заранее благодарю вас, если вы пропустите любую информацию.

+0

IE 9 и выше не требуется excanvas.js. Вы видите какие-либо ошибки в консоли? – Gyandeep

+0

Нет, отладка не помогает, ошибок нет. –

ответ

0

У меня была такая же проблема. То, что я сделал, это создать функцию, которая строит мою диаграмму, а в случае, когда страницы рисуют это.

$(document).on("pageshow", function(){ console.log('pageshow'); doPlot(); });

и моя функция doPlot была:

function doPlot(){ 
    var arrayValores = []; 
    // listaValores is an array that i send as model attribute from backend 
    $.each(JSON.parse(listaValores), function(idx, obj) { 
     var actual = [obj.fechaAccion, obj.valorAccion] 
     arrayValores.push(actual); 
    });  
    var plot = $.jqplot('accion-chart', [arrayValores], { 
      axes:{ 
      xaxis:{ 
       renderer:$.jqplot.DateAxisRenderer, 
       tickOptions:{formatString:'%H:%M'}, 
      } 
      }, 
      series:[{lineWidth:1, 
       markerOptions: { style:'none', display: 'none' }, 
        showMarker:false}], 
      seriesColors:["#FF0000"] 
     }); 
     if (plot) { 
     plot.destroy(); 
     } 
     plot.replot(); 

}

Я надеюсь, что это помогает. С уважением.

Смежные вопросы