【发布时间】:2026-01-07 15:35:01
【问题描述】:
在这里,我正在使用随机 x 和 y 在缩放和拖动 SVG 中动态移动图像。并且还在循环本身内为这些图像添加了工具提示。当工具提示出现时,其内容将被最后一个元素的工具提示覆盖。请查看FIDDLE。在下面的代码中,在 for 循环中,我尝试将工具提示显示为“用户工具提示:”+i,但所有图像都显示了最后一个工具提示内容。
for(var i in icons){
var rectx = Math.floor(Math.random()*(max-min+1)+min);
var recty = Math.floor(Math.random()*(max-min+1)+min);
//console.log("i : "+i);
if(icons[i]=="user"){
var tip="user tooltip: "+i;
console.log(tip);
svg.append("image")
.attr("id","user"+i)
.attr('x',rectx)
.attr('y',recty)
.attr('width', 30)
.attr('height', 24)
.attr("xlink:href", "http://www.worryfreelabs.com/wp-content/uploads/2016/06/WFl_logo-2015-icon-only-white-background.png")
.on("mouseover", function(d) {
div.transition()
.duration(200)
.style("opacity", .9);
div .html("user tooltip: "+i)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
.on("mouseout", function(d) {
div.transition()
.duration(500)
.style("opacity", 0);
});
}
}
【问题讨论】: