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