gpt4 book ai didi

javascript - 获取 d3.js 中的事件函数

转载 作者:行者123 更新时间:2023-11-30 09:22:36 25 4
gpt4 key购买 nike

如何获取 d3.js 中的事件函数?

比如有人写了代码:

var handleRelease = function() {
console.log("hello world");
}
var foo = d3.select("#foo").on("mouseup", handleRelease);

现在我想添加我自己的函数,以便在 foo 被释放时调用。在不破坏其他人代码的情况下我该怎么做?我的意思是如果我写:

var myFunction = function() {
console.log("bye, bye");
}
foo.on("mouseup", myFunction);

函数 handleRelease 现在不会被调用。

因此,为了避免 x-y 问题,我在这里解释了我需要附加事件函数列表的目的。

然后搜索results一点帮助都没有。

最佳答案

您的评估表明这可能是一个 XY 问题!对于您要实现的目标,您不需要已注册事件处理程序的列表。 D3 已经提供了通过允许您提供自定义名称/命名空间来将多个处理程序分配给单个事件类型的方法。 selection.on() 的规范有它(强调我的):

The type may be optionally followed by a period (.) and a name; the optional name allows multiple callbacks to be registered to receive events of the same type, such as click.foo and click.bar.

对于您的代码,这可能是这样的:

var handleRelease = function() {
console.log("hello world");
}
var foo = d3.select("#foo").on("mouseup.handleRelease", handleRelease);

var myFunction = function() {
console.log("bye, bye");
}
foo.on("mouseup.myFunction", myFunction);

然后这两个函数将独立注册为 mouseup 事件的处理程序,并且不会相互注册。

关于javascript - 获取 d3.js 中的事件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50610722/

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