使用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元素的渲染将起作用。