使用d3.js在相同的单击事件上调用两个函数

时间:2014-07-09 15:54:03

标签: javascript d3.js onclick tooltip

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

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

我想与tip.hide一起调用describe_tip.show,但不知道正确的语法。

任何建议或帮助都将不胜感激。

1 个答案:

答案 0 :(得分:7)

您可以在匿名函数中包含要进行的两个函数调用,例如

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

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

  
    

当前数据d和当前索引i,此上下文为当前DOM元素

  

callback函数(docs)。