D3.js D3 js拖放可缩放树有助于折叠由特定链接连接的节点

D3.js D3 js拖放可缩放树有助于折叠由特定链接连接的节点,d3.js,tree,D3.js,Tree,我是D3.js新手,我遵循了这个例子。我想修改它的功能,这样就不用在点击节点时折叠和展开树,而是在点击链接时实现此功能。我不知道怎么做。请在这方面帮助我,因为我无法理解javascript代码。我刚刚从示例中复制了代码并使用了它 好的,回答我认为你的问题 您需要为链接添加一个click函数(或者删除节点本身的click函数) Javascript: function clickLink(d) { d = d.target; d = toggleChildren(d

我是D3.js新手,我遵循了这个例子。我想修改它的功能,这样就不用在点击节点时折叠和展开树,而是在点击链接时实现此功能。我不知道怎么做。请在这方面帮助我,因为我无法理解javascript代码。我刚刚从示例中复制了代码并使用了它

好的,回答我认为你的问题

您需要为链接添加一个click函数(或者删除节点本身的click函数)

Javascript:

function clickLink(d) {
        d = d.target;
        d = toggleChildren(d);
        update(d);
        centerNode(d);
    }
// Enter any new links at the parent's previous position.
        link.enter().insert("path", "g")
            .attr("class", "link")
            .attr("d", function(d) {
                var o = {
                    x: source.x0,
                    y: source.y0
                };
                return diagonal({
                    source: o,
                    target: o
                });
            })
            .on('click', clickLink); // <--- Add this part.
然后您需要修改link
enter
方法,并将click侦听器链接到该方法。 Javascript:

function clickLink(d) {
        d = d.target;
        d = toggleChildren(d);
        update(d);
        centerNode(d);
    }
// Enter any new links at the parent's previous position.
        link.enter().insert("path", "g")
            .attr("class", "link")
            .attr("d", function(d) {
                var o = {
                    x: source.x0,
                    y: source.y0
                };
                return diagonal({
                    source: o,
                    target: o
                });
            })
            .on('click', clickLink); // <--- Add this part.
或者,您可能希望为用户提供一个更大的单击目标,以便您可以将
笔划宽度
值增加到像这样更大的值 CSS:

这里的演示基于这个要点


另外,你可以在我的博客上问我:)

你试过什么?“链接”是什么意思?链接是指连接树中两个节点的连接线。我已经将问题第一行链接中给出的示例整合在一起。现在我想修改代码以实现我的目标。我不知道怎么做