我在一周前开始使用D3.js,目前正在尝试弄清楚d3.dispatch()是如何工作的。我有一个超级简单的例子
<script src="d3.min.js"></script>
<script>
var dispatch = d3.dispatch("load","click");
dispatch.load("Initial Value");
dispatch.on("load", function(textvalue) {
alert(textvalue);
dispatch.on("click", function(newvalue) {
alert(newvalue);
});
});
</script>
我原本期望监听器dispatch.on("load",function(textvalue){}
会通过显示JavaScript警报对前一行dispatch.load("Initial Value");
作出反应,但事实并非如此。在Lars的回应之后(感谢Lars,这是有意义的......还有一个问题...)我编辑了代码以便阅读:
d3.csv("data.csv", function(error, states) {
dispatch.load("Initial Value");
});
dispatch.on("load", function(textvalue) {
alert(textvalue);
dispatch.on("click", function(state) {
select.text(state);
});
});
</script>
我刚刚将调用dispatch.load
更改为d3.csv()
调用,这似乎在我定义处理程序之前仍然调用load()
,但在这种情况下它确实工作。是什么赋予了? P.S也是JavaScript的新手,请原谅天真。
非常感谢任何帮助