Javascript d3.js使用按钮更新条形图工具提示

Javascript d3.js使用按钮更新条形图工具提示,javascript,d3.js,charts,tooltip,bar-chart,Javascript,D3.js,Charts,Tooltip,Bar Chart,我正在尝试用按钮制作四个条形图来对我想要显示的那个进行分类。正如你在我的文章中所看到的,总体来说,一切都很好。 然而,现在我尝试添加工具提示[here][2],并意识到每个图表的数据都不会更新。有人知道我怎么做吗?我在var提示上的implementif-else语句中考虑选择正确的按钮,如下所示: var tip = d3.tip() .attr('class', 'd3-tip') .offset([-10, 0]) .html(f

我正在尝试用按钮制作四个条形图来对我想要显示的那个进行分类。正如你在我的文章中所看到的,总体来说,一切都很好。 然而,现在我尝试添加工具提示[here][2],并意识到每个图表的数据都不会更新。有人知道我怎么做吗?我在var提示上的implementif-else语句中考虑选择正确的按钮,如下所示:

var tip = d3.tip()
          .attr('class', 'd3-tip')
          .offset([-10, 0])
          .html(function(d) {                                                                            

          if(d3.select("#propertyCategory"))
                       return "No: <strong>" + d.propertyName + "</strong> foram registrados <strong>" + d.vacant + "</strong>";
                                              })
var tip=d3.tip()
.attr('class','d3 tip')
.偏移量([-10,0])
.html(函数(d){
如果(d3.选择(“属性分类”))
返回“否:”+d.propertyName+”用于AM注册“+d.Spank+””;
})

但是,它不起作用,老实说,我不知道如何正确地实现选择。在这种情况下,我在d3.js中有点不知所措,所以我不知道如何解决这个问题。

可能是因为你可以有一个变量

  var selected = "ano2009";//set it to default value
现在,当年度发生变化时,请更改所选变量

像这样:

d3.select("#vacant")
    .on("click", function() {
        selected = "vacant";
        //Update scale domain
   d3.select("#totalUnits")
        .on("click", function() {
           selected = "totalUnits";
像这样:

d3.select("#vacant")
    .on("click", function() {
        selected = "vacant";
        //Update scale domain
   d3.select("#totalUnits")
        .on("click", function() {
           selected = "totalUnits";
。。。诸如此类

现在,在提示功能中,您可以执行以下操作:

var tip = d3.tip()
                                                  .attr('class', 'd3-tip')
                                                  .offset([-10, 0])
                                                  .html(function(d) {

 //note d[selected] will select the clicked year data.                                                  
  return "No: <strong>" + d.propertyName + "</strong> foram registrados <strong>" + d[selected] + "</strong>";
                                                  })
var tip=d3.tip()
.attr('class','d3 tip')
.偏移量([-10,0])
.html(函数(d){
//注d【选择】将选择点击的年份数据。
返回“否:”+d.propertyName+”用于AM注册“+d[所选]+””;
})

工作代码

可能是您可以有一个变量

  var selected = "ano2009";//set it to default value
现在,当年度发生变化时,请更改所选变量

像这样:

d3.select("#vacant")
    .on("click", function() {
        selected = "vacant";
        //Update scale domain
   d3.select("#totalUnits")
        .on("click", function() {
           selected = "totalUnits";
像这样:

d3.select("#vacant")
    .on("click", function() {
        selected = "vacant";
        //Update scale domain
   d3.select("#totalUnits")
        .on("click", function() {
           selected = "totalUnits";
。。。诸如此类

现在,在提示功能中,您可以执行以下操作:

var tip = d3.tip()
                                                  .attr('class', 'd3-tip')
                                                  .offset([-10, 0])
                                                  .html(function(d) {

 //note d[selected] will select the clicked year data.                                                  
  return "No: <strong>" + d.propertyName + "</strong> foram registrados <strong>" + d[selected] + "</strong>";
                                                  })
var tip=d3.tip()
.attr('class','d3 tip')
.偏移量([-10,0])
.html(函数(d){
//注d【选择】将选择点击的年份数据。
返回“否:”+d.propertyName+”用于AM注册“+d[所选]+””;
})
工作代码