问题描述
我有一个甜甜圈图网格。假设星球大战角色的项目正在努力实现......
<div id="LukeSkywalker" class="cell">
<svg>
<path class="Get off Tatooine" d=""></path>
<path class="Save Princess" d=""></path> // class is name of project to test
<text>Luke Skywalker</text>
</svg>
</div>
<div id="R2D2" class="cell">
<svg>
<path class="Find General Kenobi" d=""></path>
<path class="Save Princess d=""></path>
<text>R2-D2</text>
</svg>
</div>
<div id="Emperor" class="cell">
<svg>
<path class="Finish Deathstar" d=""></path>
<path class="Crush Rebellion" d=""></path>
<text>The Emperor</text> // Text to fade
</svg>
</div>
当用户将鼠标悬停在一个甜甜圈中的弧上时,我想淡化没有该项目的甜甜圈中的名称。因此,如果用户将鼠标悬停在“拯救公主”项目上,皇帝姓名的文本会消失,因为他没有该项目。
我必须这样做:
function hover(event,d) {
const className = event.target.className;
let hasProject_test = d3.selectAll(`div.cell`).filter((d) => {donutHasProject(d.projects,className)})
console.log(" hasProject_test",hasProject_test)
d3.selectAll(`div.cell`)
.filter((d) => {donutHasProject(d.projects,className)})
.selectAll(`text`)
.append()
.attr("class","faded")
}
function donutHasProject (donutProjects,projectName)
{
let hasProject = true;
for (let i = 0; i < donutProjects.length; ++i) {
if (cleanName(donutProjects[i].project) === projectName) // cleanName removes spaces.
hasProject = false;
}
return hasProject // Seems to be working. Have tested here and true/false is set correctly per donut.
}
hasProject_test 的控制台输出返回空的 _groups。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)