我遇到了来自underscore.js的集合函数filter_.any()的问题。 带有filter()的代码部分永远不会执行。我不明白为什么? 我从这个例子http://blog.pixelingene.com/demos/d3_tree_clipPath/中获取了这段代码,并将相同的underscore-min.js库包含在我的项目中,但它没有帮助解决我的问题
有人可以帮我解决这个问题吗?或者可能是另一种方式?感谢
function setupMouseEvents()
{
ui.nodeGroup.on('mouseover', function (d, i)
{
d3.select(this).select("rect").classed("hover", true);
})
.on('mouseout', function (d, i)
{
d3.select(this).select("rect").classed("hover", false);
})
.on('click', function (nd, i)
{
// Walk parent chain
var ancestors = [];
var parent = nd;
while (!_.isUndefined(parent)) {
ancestors.push(parent);
parent = parent.parent;
}
// Get the matched links
var matchedLinks = [];
console.log(ancestors);
ui.linkGroup.selectAll('path.link')
.filter(function (d, i)
{
return _.any(ancestors, function (p)
{
return p === d.target;
});
})
.each(function (d)
{
matchedLinks.push(d);
});
console.log(matchedLinks);
animateParentChain(matchedLinks);
});
}