J'utilise le composant piechart.js de nvd3 pour générer un camembert sur mon site. Le fichier .js fourni comprend plusieurs var's, comme suit :
var margin = {top: 30, right: 20, bottom: 20, left: 20}
, width = null
, height = null
, showLegend = true
, color = nv.utils.defaultColor()
, tooltips = true
, tooltip = function(key, y, e, graph) {
return '<h3>' + key + '</h3>' +
'<p>' + y + '</p>'
}
, noData = "No Data Available."
, dispatch = d3.dispatch('tooltipShow', 'tooltipHide')
;
Dans mon js en ligne, j'ai pu remplacer certaines de ces variables, comme ceci (remplacement de showLegend et margin) :
var chart = nv.models.pieChart()
.x(function(d) { return d.label })
.y(function(d) { return d.value })
.showLabels(false)
.showLegend(false)
.margin({top: 10, right: 0, bottom: 0, left: 0})
.donut(true);
J'ai essayé d'écraser l'infobulle de la même manière :
.tooltip(function(key, y, e, graph) { return 'Some String' })
mais lorsque je fais cela, mon camembert ne s'affiche pas du tout. Pourquoi ne puis-je pas écraser l'info-bulle ici ? Existe-t-il un autre moyen de le faire ? Je préférerais vraiment ne pas avoir à modifier piechart.js lui-même ; j'ai besoin de garder ce fichier générique pour l'utiliser dans plusieurs widgets.
Et pendant que nous y sommes, y a-t-il un moyen de transformer toute l'infobulle en un lien cliquable ?
4 votes
Je ne suis pas un expert en nvd3, je viens juste de commencer à jouer avec. J'ai eu le même problème que toi, ce que tu cherches est : .tooltipContent(function(key, y, e, graph) { return 'Some String' }) Et pendant que nous y sommes, y a-t-il un moyen de transformer toute l'infobulle en un lien cliquable ? Vous pouvez renvoyer n'importe quel HTML pour l'infobulle, mais comme elle apparaît/disparaît au survol, vous aurez du mal à cliquer dessus.