带有 html 工具提示标签的 d3 onerror 默认图像
d3 onerror default image with html tooltip tag
我正在为我的 D3 项目中的鼠标悬停事件制作一个包含图像和其他数据的工具提示。当我的数据图像丢失时,我想使用默认图像。我无法让 onerror 处理我编写的 html 字符串,如果有人能帮我看一下,我将不胜感激。我觉得我在格式化这个字符串时遇到了麻烦。
这是相关的代码:
.on("mouseover", function(d) {
d3.select(this)
.transition()
.duration(50)
div.transition()
.duration(200)
.style("opacity", .9);
div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.onerror=null;this.src="images/00037631.jpg" style ="width:4em;" /> ' + d.properties.name)
//div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.src="images/ANMS0533[020].jpg" style ="width:4em;" /> ' + d.properties.name)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
我的图像在它存在的地方显示正常,但如果图像丢失,我会得到一个无图像图标,我想看到默认图像,或者什么都没有。
希望有人能帮忙
我可能会这样解决这个问题,在上传的 img 标签上使用 id
或 class
,然后使用 d3 select 并在错误事件上附加到它。
.on("mouseover", function(d) {
d3.select(this)
.transition()
.duration(50)
div.transition()
.duration(200)
.style("opacity", .9);
div.html('<img id="loadingPic" src="images/'+ d.properties.objectNumber +'.jpg"/> ' + d.properties.name)
d3.select("#loadingPic").on("error", function(){
let el = d3.select(this);
el.attr("src", "images/00037631.jpg").style("width", "4em");
el.on("error", null);
})
//div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.src="images/ANMS0533[020].jpg" style ="width:4em;" /> ' + d.properties.name)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
我正在为我的 D3 项目中的鼠标悬停事件制作一个包含图像和其他数据的工具提示。当我的数据图像丢失时,我想使用默认图像。我无法让 onerror 处理我编写的 html 字符串,如果有人能帮我看一下,我将不胜感激。我觉得我在格式化这个字符串时遇到了麻烦。
这是相关的代码:
.on("mouseover", function(d) {
d3.select(this)
.transition()
.duration(50)
div.transition()
.duration(200)
.style("opacity", .9);
div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.onerror=null;this.src="images/00037631.jpg" style ="width:4em;" /> ' + d.properties.name)
//div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.src="images/ANMS0533[020].jpg" style ="width:4em;" /> ' + d.properties.name)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
我的图像在它存在的地方显示正常,但如果图像丢失,我会得到一个无图像图标,我想看到默认图像,或者什么都没有。
希望有人能帮忙
我可能会这样解决这个问题,在上传的 img 标签上使用 id
或 class
,然后使用 d3 select 并在错误事件上附加到它。
.on("mouseover", function(d) {
d3.select(this)
.transition()
.duration(50)
div.transition()
.duration(200)
.style("opacity", .9);
div.html('<img id="loadingPic" src="images/'+ d.properties.objectNumber +'.jpg"/> ' + d.properties.name)
d3.select("#loadingPic").on("error", function(){
let el = d3.select(this);
el.attr("src", "images/00037631.jpg").style("width", "4em");
el.on("error", null);
})
//div.html('<img src="images/'+ d.properties.objectNumber +'.jpg" onError="this.src="images/ANMS0533[020].jpg" style ="width:4em;" /> ' + d.properties.name)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})