DevExtreme v24.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.

JavaScript/jQuery Charts - Tooltips: HTML Markup Support

To set the tooltip's content, specify the contentTemplate. Inside the template, you can identify the chart series point for which the tooltip is displayed and thus display information related to that point.

en.wikipedia.org
Backend API
$(() => { $('#pie-chart').dxPieChart({ palette: 'bright', dataSource: states, title: 'Top 10 Most Populated States in US', series: { argumentField: 'name', valueField: 'population', }, export: { enabled: true, }, tooltip: { enabled: true, contentTemplate(info, container) { const contentItems = [`<div class='state-tooltip'><img src='../../../../images/flags/${ info.point.data.name.replace(/\s/, '')}.svg' />`, "<h4 class='state'></h4>", "<div class='capital'><span class='caption'>Capital</span>: </div>", "<div class='population'><span class='caption'>Population</span>: </div>", "<div><span class='caption'>Area</span>: ", "<span class='area-km'></span> km<sup>2</sup> (", "<span class='area-mi'></span> mi<sup>2</sup>)", '</div></div>']; const content = $(contentItems.join('')); content.find('.state').text(info.argument); content.find('.capital').append(document.createTextNode(info.point.data.capital)); content.find('.population').append(document.createTextNode(`${formatNumber(info.value)} people`)); content.find('.area-km').text(formatNumber(info.point.data.area)); content.find('.area-mi').text(formatNumber(0.3861 * info.point.data.area)); content.appendTo(container); }, }, }); }); const formatNumber = new Intl.NumberFormat('en-US', { maximumFractionDigits: 0 }).format;
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/24.1.7/css/dx.light.css" /> <script src="js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="pie-chart"></div> </div> </body> </html>
#pie-chart { height: 440px; } .state-tooltip { height: 90px; } .state-tooltip > img { width: 60px; height: 40px; display: block; margin: 0 5px 0 0; float: left; border: 1px solid rgba(191, 191, 191, 0.25); } .state-tooltip > h4 { line-height: 40px; font-size: 14px; margin-bottom: 5px; } .state-tooltip .caption { font-weight: 500; } .state-tooltip sup { font-size: 0.8em; vertical-align: super; line-height: 0; }
const states = [{ name: 'California', population: 38802500, capital: 'Sacramento', area: 423967, }, { name: 'Texas', population: 26956958, capital: 'Austin', area: 695662, }, { name: 'Florida', population: 19893297, capital: 'Tallahassee', area: 170312, }, { name: 'New York', population: 19746227, capital: 'Albany', area: 141297, }, { name: 'Illinois', population: 12880580, capital: 'Springfield', area: 149995, }, { name: 'Pennsylvania', population: 12787209, capital: 'Harrisburg', area: 119280, }, { name: 'Ohio', population: 11594163, capital: 'Columbus', area: 116098, }, { name: 'Georgia', population: 10097343, capital: 'Atlanta', area: 153910, }, { name: 'North Carolina', population: 9943964, capital: 'Raleigh', area: 139391, }, { name: 'Michigan', population: 9909877, capital: 'Lansing', area: 250487, }];