从其他类获取属性(d3)

时间:2013-11-27 08:15:47

标签: class variables dojo d3.js

嘿我正在使用d3插件来处理Collapse Tree。这是我的例子:http://bl.ocks.org/mbostock/4339083

现在我创建了两个小部件,它们分为两个不同的类。一个用于树,一个用于控制元素。现在我想用我的控件元素小部件更改单击节点的属性。所以我需要从我的其他类中的clicked节点获取Data(Object)。在我需要使用我的控件小部件操纵该数据之后。

“Dojo on”/“Dojo connect”只适用于DOM交互吗? 我想在javascript类之间进行通信。

这是我点击节点的onclick函数:

.on("click", function (d) {
    toggle(d);
    update(d)
})

1 个答案:

答案 0 :(得分:0)

您可以在树类中创建自定义事件,并从其他类处理它。首先,为树节点上的onClick事件定义一个事件处理程序。

onClick: function(evt) {
    // here comes your code
    // when you're finished, fire a custom event
    this.onNodeClicked(params);
},
onNodeClicked: function(params) {}

在另一个类中,侦听自定义事件。在这里,我假设你从那里创建树小部件。否则,您可以传递对树对象的引用。

var tree = new MyTree();
dojo.on(tree, "onNodeClicked", this._handleOnNodeClicked);

希望这有帮助。