【问题标题】:i change the "class" attribute of a node that exist in SVG, but not applied ! why?我更改了 SVG 中存在的节点的“类”属性,但未应用!为什么?
【发布时间】:2013-12-29 16:54:59
【问题描述】:

我更改了 SVG 中存在但未应用的节点的“类”属性!

这是我的代码(在我的指令 angularJs 中):

  node = node.data(force.nodes(),function (d) { return d.id; });
  var newNode = node.enter()
         .append("g")
         .attr("display",function(d) {return d.dis })
         .attr("class",function(d){
                return  "node " + d.class;
         })

为什么?

TNX

【问题讨论】:

  • 不知道你在这里问什么。您正在添加一个新元素并设置它的类。你是说没有设置类?
  • 这不是我的手段。我的问题是:我用 D3 绘制了一个图形,并且任何“g”都有“类”。但是当我更改节点(force.nodes())的“类”属性并重绘图形时,新的“类”不适用于“g”。为什么? @LarsKotthoff
  • 您能发布您用来执行此操作的代码吗?
  • 谢谢拉尔斯。这个jsfiddle 显示我的问题,我画了我的图表,2 秒后。我更改了最后一个节点的“名称”,然后重新启动我的图表。但是“名字”没有变?!!! @LarsKotthoff
  • 看起来您只是在更新数据。这不会自动更新 DOM 元素。

标签: javascript angularjs svg d3.js


【解决方案1】:

看起来您正在更改节点内"g""class" 属性,而不是节点本身的类。要更改节点的类,您只需执行以下操作:

var newNode = node.attr("class",function (d) { return  "node " + d.class; })

【讨论】:

  • 在我看来nodeg 元素的选择。无论如何,OP 正在改变一个新添加的元素的类。
  • 这不是我的手段。我的问题是:我用 D3 绘制了一个图形,并且任何“g”都有“类”。但是当我更改节点(force.nodes())的“类”属性并重绘图形时,新的“类”不适用于“g”。为什么? @tomtomtom
猜你喜欢
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多