2017-04-03 74 views
0

我有一个使用jquery mobile开发的移动应用程序。一页我有一个图表。当用户点击<a href="chart.html" data-ajax=“true”>Chart</a>页面加载但图表不加载。当我刷新页面时,图表起作用。当data-ajax =“true”时执行jquery函数

data-ajax=“false”页的作品,但它的不光滑且行有过渡效果

下面是我的海图编

<script type="text/javascript"> 
$(function() { 
    var limit = 10000; //increase number of dataPoints by increasing the limit 
    var y = 0; 
    var data = []; 
    var dataSeries = { type: "line" }; 
    var dataPoints = []; 
    for (var i = 0; i < limit; i += 1) { 
     y += (Math.random() * 10 - 5); 
     dataPoints.push({ 
      x: i, 
      y: y 
     }); 
    } 
    dataSeries.dataPoints = dataPoints; 
    data.push(dataSeries); 

    //Better to construct options first and then pass it as a parameter 
    var options = { 
     zoomEnabled: true, 
       animationEnabled: true, 
     title: { 
      text: "Try Zooming - Panning" 
     }, 
     axisX: { 
      labelAngle: 30 
     }, 
     axisY: { 
      includeZero: false 
     }, 
     data: data // random data 
    }; 

    $("#chartContainer").CanvasJSChart(options); 

}); 
</script> 

HTML

<div id="chartContainer" style="height: 300px; width: 100%;"></div> 

有没有去执行图表功能没有设置data-ajax=“false”

+0

当chart.html页面加载并可见时运行图表js代码。听'pagecontainershow'事件。 – Omar

+0

@Omar即使页面已经完全加载,图表不起作用,除非我刷新。另外我怎样才能使用'pagecontainershow'? – LiveEn

+0

https://jqmtricks.wordpress.com/2014/03/26/jquery-mobile-page-events/如何使用pagecontainer事件。 – Omar

回答

0

为了处理复杂的图表,我通常使用Highcharts,它的响应速度非常快,而且可以自定义,它在显示时也具有非常平滑的过渡效果。
这是JSFiddle上的Example

Highcharts.chart('container', { 
chart: { 
    type: 'column' 
}, 
title: { 
    text: 'Column chart with negative values' 
}, 
xAxis: { 
    categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas'] 
}, 
credits: { 
    enabled: false 
}, 
series: [{ 
    name: 'John', 
    data: [5, 3, 4, 7, 2] 
}, { 
    name: 'Jane', 
    data: [2, -2, -3, 2, 1] 
}, { 
    name: 'Joe', 
    data: [3, 4, 4, -2, 5] 
}] 

});

我希望它有帮助。

+0

问题不在图表中,它在'data-ajax'为true时不加载 – LiveEn