我在d3中显示div工具提示时出现了一些问题。我已经好几次没有遇到任何问题,但是现在,它不起作用......奇怪的是,当我调用.on("mouseover", function(){})
时,事件总是触发,当我添加参数d
时,它只是有时射击。 WHY ???
这是我的代码:
//SIMDATA is read from a json
var fc_d = SIMDATA.filter(function(d){return d.similarity == "forwardcitation";});
//slideFCit and patentdiv_FCit are divs
slideFCit.select("#patentdiv_FCit").selectAll("div")
.data(fc_d)
.enter()
.append("div")
.attr("class","patentdiv").attr("id",function(d,i){return ("pd"+d.id+i);}).attr("name",function(d){return d.id;})
.style("border-color",simcolors[6])
.on("click",function(){checkDuplicates(d3.select(this));})
// HERE'S the problem
.on("mouseover",function(d){
console.log(d.title);
var pos = findPos(document.getElementById(d3.select(this).attr("id")));
// titleDiv is my tooltip div
titleDiv.style("opacity",1).style("top",pos.Y+"px")
.style("left",pos.X+"px").select("p").html(d.title);
})
.on("mouseout",function(){
titleDiv.style("opacity",0);
});
简而言之:
每次我将鼠标悬停在元素上时{.on("mouseover",function(d){//code})
都没有触发,而.on("mouseover",function(){//code})
工作正常,但我没有d
,我需要它在工具提示div中显示其标题。< / p>
有什么想法吗?