Javascript d3js使工具提示在单击时保持不变
我有一个文本,当我把鼠标放在上面时,我想在上面显示一个提示。这是实现的。现在,我希望提示在我单击此文本后保持不变,并在再次单击文本时消失。我该怎么做?看来“提示秀”不适合这个目的Javascript d3js使工具提示在单击时保持不变,javascript,html,d3.js,Javascript,Html,D3.js,我有一个文本,当我把鼠标放在上面时,我想在上面显示一个提示。这是实现的。现在,我希望提示在我单击此文本后保持不变,并在再次单击文本时消失。我该怎么做?看来“提示秀”不适合这个目的 nodeEnter.append("text") .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) .attr("dy", ".35em") .attr("text-anchor", fu
nodeEnter.append("text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill-opacity", 1e-6)
.style("font-weight", function(d) { return d.father == undefined ? "":"bold";})
.style("font-size", function(d) { return d.father == undefined ? "":"14px";})
.on('mouseover', tip.show)
.on('mouseout', tip.hide);
“小费”的定义:
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function(d) { return "index: " + d.index + "<br>other information..."; });
svg.call(tip);
var tip=d3.tip()
.attr('class','d3 tip')
.偏移量([-10,0])
.html(函数(d){return”索引:“+d.index+”
其他信息…”;});
svg.call(tip);
谢谢 指定一个标记以跟踪是否隐藏。然后将其绑定到单击事件,而不是鼠标悬停
var clickFlag = false;
nodeEnter.append("text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill-opacity", 1e-6)
.style("font-weight", function(d) { return d.father == undefined ? "":"bold";})
.style("font-size", function(d) { return d.father == undefined ? "":"14px";})
.on('click', function(d){
if(clickFlag){
tip.hide(d);
}else{
tip.show(d);
}
return clickFlag = !clickFlag;
})
非常感谢。如果条件工作正常,但提示不显示…:(是的,我试过了,这给了我一个非常奇怪的错误,所以我认为应该没有()@jiayi我用
tip.show(d)
/tip.hide(d)更新了我的答案)
嘿,但由于存在变量“clickFlag”,一次只能显示一个提示。有没有办法让多个提示一起显示?@jiayi当然有;flag变量只是一个例子。您可以在基准内定义标志,如d.showFlag=false
等,然后从中检查每个单击对象(文本)。