Я тут голову ломаю. Я хочу отображать всплывающие подсказки для конечных узлов в такой структуре, как Zoomable Pack Layout а>. Листовые узлы коричневые. Если бы я использовал стандартный код для всплывающих подсказок:
vis.selectAll("circle")
.data(nodes)
.enter()
.append("svg:circle")
.attr("class", function(d) {
return d.children ? "parent" : "child";
})
.attr("cx", function(d) {
return d.x;
})
.attr("cy", function(d) {
return d.y;
})
.attr("r", function(d) {
return d.r;
})
.on("click", function(d) {
zoom(node == d ? root : d);
})
.append("svg:title")
.text("test"); \\ Browser uses this for tooltips
Я получаю всплывающие подсказки для основных кругов, но не для листовых узлов. Я старался:
.append("svg:title")
.text(function(d) {
if(d.size){return 'test';}
});
... надеясь, что, возвращая что-то только тогда, когда присутствует переменная, содержащаяся в листовых узлах, может помешать родительским узлам отображать всплывающую подсказку, но я боюсь, что все, что он сделал, это разрешил скрытую всплывающую подсказку, которая молча предотвращает отображение чего-либо.
Есть предположения? Я полагаю, что мне нужно либо сложить svg:circles так, чтобы листовые узлы были перед другими, либо прикрепить svg:titles только к листовым узлам, но я не уверен, как это сделать.
Вот несколько подсказок: Fiddle