Javascript 获取d3.js中的事件函数

Javascript 获取d3.js中的事件函数,javascript,d3.js,Javascript,D3.js,如何在d3.js中获取事件函数 例如,有人编写了以下代码: var handleRelease = function() { console.log("hello world"); } var foo = d3.select("#foo").on("mouseup", handleRelease); 现在我想添加自己的函数,以便在foo发布时调用。我如何做到这一点而不破坏其他人的代码?我的意思是如果我写: var myFunction = function() { console.

如何在
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
问题,我在这里解释了我需要附加事件函数列表的原因


搜索根本没有帮助。

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

该类型可以可选地后跟句点(
)和名称;可选名称允许注册多个回调以接收相同类型的事件,例如
click.foo
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
事件的处理程序,并且不会相互关联

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

该类型可以可选地后跟句点(
)和名称;可选名称允许注册多个回调以接收相同类型的事件,例如
click.foo
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
事件的处理程序,并且不会相互关联

Does
foo.on(“mouseup”,function(){handleRelease();myFunction();})不工作?为什么不直接添加
console.log(“再见,再见”)
到函数
handleRelease
,或添加
myFunction()
-这样就不会覆盖,更多extending@Shashank,即代码管理。不管它现在是否工作,我想保持我的代码干净。@DarrenSweeney,这是关于保持代码干净。这比添加更多事件处理程序来做处理程序已经在做的事情更干净(imhodos
foo.on(“mouseup”,function(){handleRelease();myFunction();})不工作?为什么不直接添加
console.log(“再见,再见”)
到函数
handleRelease
,或添加
myFunction()
-这样就不会覆盖,更多extending@Shashank,即代码管理。不管它现在是否工作,我想保持我的代码干净。@DarrenSweeney,这是关于保持代码干净。这比添加更多事件处理程序来做处理程序已经在做的事情更干净