0

问题:从 d3v2 移动到 d3v3 并且转换停止工作。

这个想法是在屏幕上出现一些框,以便新的框从左侧滑动。当元素改变位置时,它们应该移动到新位置。

我在( https://github.com/mbostock/d3/wiki/Upgrading-to-3.0)查看了迁移文档。代码如下所示:

elements = svg.selectAll(".element").data( d3.values(@mystuff.elements), (x)->x.id )
elements.enter().insert("g",".box")
            .append("g")
            .attr("class", "element")
            .attr("id", (d)-> "elem_#{d.id}" )
            .attr("transform", @element_start_position )
            .call(@drag_action)
            .on( "click", @on_element_click )

elements.transition().duration(750)
        .each("start", () -> console.debug("start transition") )
        .attr("transform",  (d)-> @element_final_position )

element_start_position: (d)->"translate(0,#{d.y})"

element_final_position: (d)->"translate(#{d.x},#{d.y})"

我看到的是enter()有效,但update没有。console.debug()不会被调用,并且元素会留在它们的起始位置。

帮助我堆栈溢出,你是我唯一的希望......

4

1 回答 1

1
.attr("transform",  (d)-> @element_final_position )

应该是这样的:

.attr("transform",  (d) => @element_final_position )

或更可能:

.attr("transform",  @element_final_position )
于 2013-09-09T01:55:29.567 回答