2014-02-26 67 views
0

在下面d3.js代碼:在使用d3.js創建的條形圖欄上懸停後,觸發2個鼠標懸停事件?

svg.selectAll(".bar") 
      .data(data) 
      .enter() 
      .append("rect") 
      .attr("transform", "translate(10,0)") 
      .attr("class", "bar") 
      .attr("x", function(d) { return x(d.thread_id); }) 
      .attr("width", x.rangeBand()) 
      .attr("y", function(d) { return y(+d.traffic); }) 
      .attr("height", function(d) { return height - y(+d.traffic); }) 
      .on('mouseover', tip.show)   // First time call to show a tooltip 
      .on('mouseover', justChecking)  // Second time to call a Function 
      .on('mouseout', tip.hide); 

當我執行此代碼,僅示出了第二函數輸出,但工具提示消失。

我想在mouseover上調用它們兩個,即調用該函數以及顯示工具提示。任何想法都表示讚賞?

回答

2

您附加的任何事件處理程序會覆蓋先前附加的事件處理程序。但是,您可以在相同的處理程序調用您的兩個功能:

.on('mouseover', function(d, i) { 
    tip.show(d, i); 
    justChecking(d, i); 
}) 
+0

如果由於某種原因,這並不爲你工作,你可以[添加一個「命名」的事件](https://開頭github上。 com/mbostock/d3/wiki/Selections#wiki-on),它只會用相同的事件類型和命名空間覆蓋其他事件處理程序。 '.on(「mouseover.tip」,tip.show).on(「mouseover.check」,justChecking);' – AmeliaBR

+0

感謝您的回覆...作品像一個魅力:) – Anuj

相關問題