我有一個有點嵌套的JSON文件:簡單的功能不工作中的if語句
{
"name": "1370",
"children": [
{
"name": "Position X",
"value": -1
},
{...}
]
"matches": [
{
"certainty": 100,
"match": {
"name": "1370",
"children": [
{
"name": "Position X",
"value": -1
},
{...}
]
}
}
]
}
我想用一個修改Collapsible Tree顯示它。我想在懸停相應節點時顯示「匹配」和「確定性」。我用這個simple tooltip example。
現在我有這樣的事情:
var nodeEnter = node.enter().append("g")
...
.on("mouseover", function(d) {
if (d.matches) {
return tooltip.style("visibility", "visible")
.text(function(d) { return d.name; });
}
})
...
;
我只是用d.name進行測試。我想稍後寫一個更復雜的函數。但這根本不起作用。我得到一個工具提示,但它是空的(或包含默認值)。我不明白的一點是,下列工作:
if (d.matches) {
return tooltip.style("visibility", "visible")
.text(d.name);
}
因此在我看來,是一個功能不在這一點上工作。我究竟做錯了什麼?
太多嵌套的邏輯。我根本不清楚什麼是回報什麼。爲了調試,刪除條件'if(d.matches)'。這不相關。你爲什麼要返回'd.name'?你不應該像第二個例子那樣使用它嗎? '.text(d.name);' – m59
你希望參數「d」在你的「mouseover」處理程序中?無論如何,這將是一個Event對象。 – Pointy
@Pointy這是'd3'上下文中的事件處理程序。因此,'mouseover'處理程序中的'd'將成爲與該節點相關的'data'。 –