将chart.js图表​​放在JQuery工具提示中?

时间:2015-07-13 10:36:59

标签: javascript jquery chart.js

我想在工具提示中显示chart.js的条形图。 这可能吗?

$(function() {
   $( document ).tooltip({
     track: true,
     content:function () {var temp = $(this).prop('title');
            temp = theBigArray[temp] //THIS IS THE JSON DATA CONTAINER FOR EACH SENTENCE

            var barChartData = {
                labels : ["Future","Present","Past"],
                datasets : [
                    {
                        fillColor : "rgba(151,187,205,0.5)",
                        strokeColor : "rgba(151,187,205,0.8)",
                        highlightFill : "rgba(151,187,205,0.75)",
                        highlightStroke : "rgba(151,187,205,1)",
                        data : [temp[2], temp[3], temp[4]]
                    }
                ]

            }
            var ctx = document.getElementById("canvas").getContext("2d");
            var myTable = new Chart(ctx).Bar(barChartData, {
                responsive : false
            });
            return  '<canvas id="canvas"></canvas>';
    }
  });

当“canvas”下面,并在html上显示时,它工作正常。但是,当我使用div返回工具提示的内容时,它无法在工具提示javascript中显示。

1 个答案:

答案 0 :(得分:2)

在调用getElementById之前,需要先创建canvas元素。此外,需要调整canvas元素的大小,以使Chart.js正常工作。

使用此

SimpleDateFormat()

使用CSS

$(function() {
    $( document ).tooltip({
        track: true,
        open: function (event, ui) {
            $('.ui-tooltip-content > div').append($("#canvas"))
        },
        content: function () {
            var temp = $(this).prop('title');
            var temp = theBigArray[temp] //THIS IS THE JSON DATA CONTAINER FOR EACH SENTENCE

            var barChartData = {
                labels: ["Future", "Present", "Past"],
                datasets: [
                    {
                        fillColor: "rgba(151,187,205,0.5)",
                        strokeColor: "rgba(151,187,205,0.8)",
                        highlightFill: "rgba(151,187,205,0.75)",
                        highlightStroke: "rgba(151,187,205,1)",
                        data: [temp[2], temp[3], temp[4]]
                    }
                ]
            }

            $('body').append($("<canvas id='canvas' width='200' height='100'></canvas>"))
            var ctx = document.getElementById("canvas").getContext("2d");
            var myTable = new Chart(ctx).Bar(barChartData, {
                responsive: false,
                animation: false
            });

            return '<div></div>';
        }
    })
});

enter image description here

相关问题