基于条件 d3.js 的工具提示可见性

Tooltip visibility based on condition d3.js

我需要仅在选中复选框值时在移动悬停时显示图表节点的工具提示。否则它不应该显示。

我尝试了如下代码。但是它不起作用。

.on('mouseover', function (d) {
  if(document.getElementById("chkEnableDisableNames").checked == true){
    d.show ;
}
else { 
  return null;
}})

jsfiddle

注意:我将参考您的 jsFiddle 示例,因为其中的代码与您在问题中发布的代码片段不同。

代码有几个问题:

1) 您正在使用自定义函数 showhidefunc() 来调节提示的显示。该函数在您的悬停事件范围之外,因此不会继承它的局部变量,因此您需要通过参数传入它:

.on('mouseover', function(d) {
  showhidefunc(d); 
}

// ...

function showhidefunc(d) {
  // ...
}

2) tip.show() 不是 属性 而是一种方法,需要在参数中传递一个节点以显示提示才能工作:

tip.show(d);

除此之外你的代码看起来不错。

这是你更新的(工作中的)fiddle: http://jsfiddle.net/f8R3M/39/