使用命名空间调度自定义事件

时间:2013-05-24 11:32:48

标签: events event-handling d3.js

我正在尝试在我的某个项目中使用'd3.dispatch'功能。我想安装 自定义事件,并使用命名空间将其分发给可用的listenres。

我这样做了:

var dispatcher = d3.dispatch("period_selected");

brush.on("brush", function() {
  var s =  brush.extent()

  // patch the event to listeners
  dispatcher.period_selected(s);

});

// register listener for the event namespaced 
dispatcher.on("period_selected.my_namespace", function(s,f) {

    console.log(event.period_selected);
});

但我无法取回带有命名空间的结果。你有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

命名空间不作为参数传递,也不会分配给事件。如果您真的喜欢命名空间,那么您应该将其作为参数传递:

dispatch.period_selected(s, "my_namespace")

......然后可以在这里找到:

dispatcher.on("period_selected.namespace", function(s, namespace) {
    // Use namespace here
});