d3缩进树及遇到的问题
参考:https://bl.ocks.org/mbostock/1093025
1.实现点击node上的text/rect元素 进行一些操作
<1>css部分注意点
.node text {pointer-events: none;}
//元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属性指定其他值时,鼠标事件可以指向后代元素,在这种情况下,鼠标事件将在捕获或冒泡阶触发父元素的事件侦听器。
<2>绑定鼠标事件:
可以在创建元素时就绑定鼠标事件:例 : nodeEnter.append(“rect”).on(‘click’,function(d){})
也可以通过d3选择器绑定鼠标事件
d3.selectAll(‘元素’).on(‘click’,function(){});
2.>=3层子元素收起,只展示1,2层元素
if (root.children) {
root._children = root.children;//第一层元素(添加收起展开标识时会用到)
root.children.forEach(collapse);
}
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
其他点后续补充