如何在Cal-heatmap中的d3对象上添加url / link

时间:2015-07-13 23:43:49

标签: d3.js cal-heatmap

作为d3和js的新手,或者只是前端,我花了足够的时间基本了解Cal-heatmap的工作原理。我有一个工作版本,但真的想在日历超链接上创建小盒子以获得额外的功能,阅读源代码对我来说是一个完全的灾难。我想我应该按照建议的here.attr("xlink:href", url)添加到某个对象,但我真的无法弄清楚在哪里。有没有人做过类似的事情?另外,我也不太了解在初始化传递给源代码时我指定的属性。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

这需要一点点hackery。

热图后,您可以:

d3.selectAll('.graph-rect')
  .each(function(d){
    var a = d3.select( this.parentNode ) // get the parent of the rect (it's a g)
      .append("a") // append the link
      .attr("xlink:href","http://www.google.com")
      .attr("target", "_blank"); // set its link
    var rect = this;
    rect.remove(); // remove the rect
    a.insert(function(){return rect}); // and re-add it to the link
  });

工作example