使用d3.js在同一个点击事件上调用两个函数

Calling two functions on same click event with d3.js

本文关键字:调用 函数 两个 事件 js d3 同一个 使用      更新时间:2023-09-26

有人知道是否可以在d3.js的同一事件上调用两个单独的函数吗?我知道你可以在JavaScript中做到这一点,只需要用分号将两者分开,但在我的特殊情况下还没有成功。我正在使用一个带有工具提示的强制布局图,并且有两个我想使用的单独的工具提示。在鼠标悬停时,出现一个工具提示,显示节点的名称,然后单击,我希望第二个工具提示显示其描述。在点击的时候,我希望第一个工具提示消失。下面是我使用的代码块:

         .on("click", describe_tip.show)
         .on("mouseover", tip.show)
         .on("mouseout", tip.hide) 

我想调用tip.hidedescribe_tip.show,但不知道正确的语法。

你可以把你想要的两个函数调用包装在一个匿名函数中,例如

.on("click", function(d){
    describe_tip.show(d);
    tip.hide(d);
})

注意,由于describe_tip.showtip.hide都需要数据d作为参数,您需要将其传递给它们。回想一下,当向.on("click", callback)传递匿名回调函数时,D3传递:

当前数据d和当前索引i,其中this上下文作为当前DOM元素

callback函数