javascript - Put chart.js chart inside JQuery tooltip? -


i display chart.js's bar chart inside tooltip. possible?

$(function() {    $( document ).tooltip({      track: true,      content:function () {var temp = $(this).prop('title');             temp = thebigarray[temp] //this json data container 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>';     }   }); 

when "canvas" under , , displayed on html, works fine. but, fails show inside tooltip javascript when return content of tooltip div.

you need create canvas element before call getelementbyid on it. also, canvas element needs sized chart.js work properly.

use this

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

with css

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

enter image description here


Comments

Popular posts from this blog

searchKeyword not working in AngularJS filter -

sequelize.js - Sequelize: sort by enum cases -

user interface - how to replace an ongoing process of image capture from another process call over the same ImageLabel in python's GUI TKinter -