gpt4 book ai didi

javascript - d3.dispatch() 未按预期工作

转载 作者:行者123 更新时间:2023-12-02 16:24:08 25 4
gpt4 key购买 nike

我一周前开始使用 D3.js,目前正在尝试弄清楚 d3.dispatch() 是如何工作的。我有一个 super 简单的例子

<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){} 会对上一行使用react dispatch.load("Initial Value") ; 通过显示 JavaScript 警报,但事实并非如此。在 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 还很陌生,所以请原谅我的天真。

任何帮助将不胜感激

最佳答案

您的代码的顺序完全错误 - 当您调用 .load() 时,该事件的处理程序尚未定义。当您重新排列代码以便在调用处理程序之前定义处理程序时,它就会起作用。

完整演示 here .

关于javascript - d3.dispatch() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28852757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com