我想在此代码片段中检查函数中“d”参数的值:
var force = force = d3.layout.force()
.nodes(json.nodes)
.links(json.links)
.linkDistance(function (d){return d;}) //I need to know the "d" value to decide what return
.size([width, height])
.start();
我正在使用firebug,但我无法进入该功能。我试图在函数内部发出警报,但它没有用。
答案 0 :(得分:1)
d3文档提供了什么是参数:
如果指定了距离,则将链接节点之间的目标距离设置为指定值。如果未指定距离,则返回布局的当前链接距离,默认为20.如果距离是常量,则所有链接的距离都相同。否则,如果distance是一个函数,则为每个链接(按顺序)计算函数,传递链接及其索引,并将此上下文作为强制布局;然后使用函数的返回值来设置每个链接的距离。无论何时布局开始,都会评估该函数。通常,距离以像素为单位指定;但是,单位相对于布局的大小是任意的。
>
所以,如果参数是一个函数,第一个参数是链接,第二个参数是链接的索引。在应用函数之前,您不应忘记将数据与力布局相关联。
我在这里有一个例子:
force
.nodes(json.nodes)
.links(json.links);
force.linkStrength(function(d,i) {return (json.links[i].isMyLeaf ? .01: 1);});
在我的json文件中,我为每个链接定义了isMyLeaf。