跟踪D3js中的附加图像

时间:2014-12-09 06:14:21

标签: javascript d3.js force-layout

我将微调器的图像附加到特定事件的图标上:

if (d.state == "0") {
    d3.select(this).append("svg:image")
    .attr("class", "circle")
    .attr("id", this.name)
    .attr("xlink:href", "Images/icons/ajax-loader.gif")
    .attr("x", "+16px")
    .attr("y", "-16px")
    .attr("width", "20px")
    .attr("height", "20px");
} else if (d.state == "1") {
    d3.select("#" + d.name)
    .remove();
}

在状态更改时,我想删除/隐藏此微调器图像。我该如何跟踪它? 是否有一种机制可以将ID与它相关联,以便我以后可以使用它来删除它?

我尝试使用ID(如代码段中所示),但它不起作用。

1 个答案:

答案 0 :(得分:0)

多种方式(取决于您使用它的更大背景):

您可以将其分配给变量:

spinner = d3.selet(this).append("svg:image")
  .attr('class', "circle")
  ...

然后使用spinner.remove()将其删除。 var spinner必须在您使用它的代码中的所有位置(即位于文件顶部)可以访问的地方声明。


您可以使用.attr("id", "my_image")为其分配ID,然后您可以稍后使用d3.select("#my_image")根据该ID选择它。或者您可以按其类d3.select('circle')选择它。

如果您有多个具有相同ID的图像,并且对于类,如果有多个,则ID将无法工作,除非您首先d3.select(...)其中一个的父级,否则它们都将被选中。< / p>