使用chart.js加载jquery

我正在使用JQuery Load加载页面的一部分,并希望使用chart.js插件来构建图表作为页面的一部分。 加载html加载正常,如果刷新页面,图表将构建,但有时,它永远不会在第一页加载时构建图表。 我需要推迟或承诺吗?

是的,如果使用jQuery .load()使用canvas元素加载HTML,则需要将图表初始化放在完整的回调中,如此

 $("#result").load("canvas.html", function () { var data = { labels: ['A', 'B', 'C', 'D', 'E', 'F', 'G'], datasets: [ { data: [12, 23, 23, 43, 45, 12, 33] } ] }; var ctx = document.getElementById("myChart").getContext("2d"); var myLineChart = new Chart(ctx).Line(data); }); 

canvas.html的位置

  

加载数据时,canvas元素需要具有非零渲染大小,否则图表将不会显示。

在大多数情况下,将new Chart...放在正确的位置(例如在回调中,在标签可见之后等)就足够了。 当无法识别这样的点时,使用具有足够延迟的setTimeout来保证canvas元素的渲染将起作用。