繁体   English   中英

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

[英]Put chart.js chart inside JQuery tooltip?

我想在工具提示中显示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>';
    }
  });

当“画布”位于下方并显示在html上时,它可以正常工作。 但是,当我使用div返回工具提示的内容时,它无法在工具提示javascript中显示。

您需要先创建canvas元素,然后才能对其调用getElementById。 另外,需要调整canvas元素的大小,以便Chart.js正常工作。

用这个

$(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>';
        }
    })
});

用CSS

<style>
    body > #canvas {
        position: fixed;
        visibility: hidden;
    }
</style>

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM