嘿我正在使用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)
})
答案 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);
希望这有帮助。