d3js追加div返回null数组

时间:2015-11-22 10:32:17

标签: javascript d3.js

我正在尝试创建一个循环函数,我发送单击元素的子元素以显示它。一切似乎都很好,直到点击它并到达cellSelection.enter().append("div");

的行

节点似乎正确。当它转到append()方法时,我不知道到底发生了什么。

这是一个工作示例: https://jsfiddle.net/festudillobernal/LghxxqLv/

编辑:

以下是相关代码:

d3.json(dataJson, function(error, data) {
    display(dataJson);

    function display(data) {
        console.log(data);
        var nodes = treemap.nodes(data);
        var cellSelection = svg.selectAll(".cell").data(nodes);
        var cellEnterSelection = cellSelection.enter().append("div")
            .attr("class", "cell").on("click", zoomin);
        cellEnterSelection.append("div")
            .text(function(d) {
                return d.name ? d.name : "";
            });
        cellSelection.transition().duration(250)
            .call(cellUpdate);
        cellSelection.exit().remove();

        function zoomin(d) {
            if (transitioning || !d) return;
            transitioning = true;
            var g2 = display(d);
            var t1 = cellEnterSelection.transition().duration(750);
            var t2 = g2.transition().duration(750);
        }
        return cellEnterSelection;
    }
});

单击一个单元格并调用zoomin函数时,它会再次调用display方法,此步骤为:

var cellEnterSelection = cellSelection.enter().append("div")
            .attr("class", "cell").on("click", zoomin);

因为它用空值填充divs,我已经检查了cellSelection.enter().append("div")的返回值,它是一个空数组,任何可能是什么原因的想法?

0 个答案:

没有答案