在d3 .classed()运算符中包含赋值是什么意思?

时间:2015-05-21 03:35:18

标签: javascript d3.js

我正在尝试理解sticky force layout d3示例

在示例中有这个功能:

function dragstart(d) {
    d3.select(this).classed("fixed", d.fixed = true);
}

该函数为节点提供“节点固定”类,并对强制模型执行某些操作以使这些节点固定。我对它是如何做到这一点很困惑。从我希望的规范开始,请遵循# selection.classed(name[, value])形式,但为此,value是一项任务。这里发生了什么?如何使用此函数将强制布局属性更改为固定而不更改类?

1 个答案:

答案 0 :(得分:0)

代码正在改变两者。它等于(但短于)

var ctx = document.getElementById("chart-area").getContext("2d");
var myNewChart = new Chart(ctx).DoughnutAlt(doughnutData, {
    responsive : true,
    radiusPercentage: 0.8
});     

这是有效的,因为Javascript中赋值的值是指定的值,即d3.select(this).classed("fixed", function() { d.fixed = true; return true; }); 求值为d.fixed = true,然后由true函数使用。