首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击dagre-d3中的节点

单击dagre-d3中的节点
EN

Stack Overflow用户
提问于 2014-09-09 10:45:47
回答 1查看 3K关注 0票数 2

我正在使用degre-d3,并且在获取单击节点的节点数据时遇到了问题。单击时我有一个事件,但是d3.select(this)似乎没有得到相关数据(如果可能的话,我希望有节点名称、标签和其他对象数据)。

代码语言:javascript
复制
app.controller "DashboardElementShowController", ($scope, DashboardElementIndexService) ->
  init_app = ->
    # Create a new directed graph
    g = new dagreD3.Digraph()

    g.addNode "bpitt",
      label: "html Brad Pitt <b>test</b>"
    g.addNode "hford",
      label: "Harrison Ford"
    g.addNode "lwilson",
      label: "Luke Wilson"
    g.addNode "kbacon",
      label: "Kevin Bacon"

    g.addEdge null, "bpitt", "kbacon",
    g.addEdge null, "hford", "lwilson",
    g.addEdge null, "lwilson", "kbacon",

    renderer = new dagreD3.Renderer().edgeInterpolate("cardinal")
                .edgeTension(0.8)
    renderer.edgeInterpolate('linear');
    renderer.run g, d3.select("svg g")
    d3.select("svg g").on("click", (d, i, k) ->
      console.log d3.select(this) # doesn't seem to have relevant info I need
    )


  init_app()

编辑: 10.09.2014:这里说我必须重写renderer.drawNodes方法:https://github.com/cpettitt/dagre-d3/issues/67

这是指定的代码:

代码语言:javascript
复制
constructor:
  @renderer.drawNodes @_drawNodes().bind @

_drawNodes: ->
  oldDrawNodes = @renderer.drawNodes()
  (graph, svg) ->
    # catch drawed nodes
    svgNodes = oldDrawNodes graph, svg
    svgNodes.on 'click', (nodeId) -> console.log 'node clicked', nodeId

我不知道该怎么用这个代码覆盖.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 10:42:26

这个来自Wiki的例子可能对http://cpettitt.github.io/project/dagre-d3/latest/demo/hover.html有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25742645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档