gpt4 book ai didi

javascript - D3.JS 条件工具提示 html

转载 作者:行者123 更新时间:2023-11-30 12:08:42 27 4
gpt4 key购买 nike

我在 D3JS 散点图中有点。

工具提示可以很好地处理这段代码:

 // draw dots
svg.selectAll(".dot")
.data(data)
.enter().append("circle")
.attr("class", "dot")
.attr("r", 7)
.attr("cx", xMap)
.attr("cy", yMap)
.style("fill", function(d) { return color(cValue(d));})
.style("opacity", .95)
.on("mouseover", function(d) {
tooltip.transition()
.duration(100)
.style("opacity", .95);
tooltip.html(" Seen on : " + d.url)
.style("left", (d3.event.pageX) + 10 + "px")
.style("top", (d3.event.pageY) - 200 + "px");
})
.on("mouseout", function(d) {
tooltip.transition()
.duration(200)
.style("opacity", 0);
})
.style("cursor", 'pointer')
.on('click', function(d) {
var url = d.url;
window.open(url); });

但我想包含一个 if...else 语句以更好地自定义工具提示的内部 html。所以我尝试了:

      .on("mouseover", function(d) {
tooltip.transition()
.duration(100)
.style("opacity", .95);
tooltip.style("left", (d3.event.pageX) + 10 + "px")
.style("top", (d3.event.pageY) - 200 + "px")
.html( if (d.category == "A") {return " Oh yeah ! Seen on : " + d.url"}
else { return " So cool ! Check it out on : " + d.url"};)
;})

但我在 Firebug 控制台中收到以下错误:

SyntaxError: expected expression, got keyword 'if'

最佳答案

D3 是一种魔法,但您仍在编写 JS:您不能在需要表达式的地方编写语句。将其包装在一个函数中,

tooltip.html(function() { 
if (d.category == "A") {
return " Oh yeah ! Seen on : " + d.url;
} else {
return " So cool ! Check it out on : " + d.url;
}
})

或者使用三元运算符

tooltip.html((d.category == "A") ? "":"")

或一个变量

var html = (d.category == "A") ? "":"";
tooltip.html(html);

注意:请注意您的引号,语法突出显示可以帮助您发现不匹配的地方。

关于javascript - D3.JS 条件工具提示 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com