我試圖在不使用正常li/ul方法的情況下開發d3導航菜單。到目前爲止,我有2個級別,我正在使用鼠標事件觸發更改。然而,第一個週期工作正常,並且父項在鼠標移出時變黑,此後事情開始表現異常,並且該行不執行; svg.selectAll(「。lvl1」)。attr(「fill」,「black」);但remove()過程起作用。我錯過了什麼,或者是否掛在一個活動上?任何有助於將這種方法擴展到3級的想法也將被讚賞。 https://jsfiddle.net/sjp700/djcc6kxq/d3導航欄在鼠標移出時的奇怪行爲
lvl2.selectAll(".band")
.attr("width", function (d) { return d.width; })
.attr("height", 18)
.style("opacity", .5) // set the element opacity
.style("stroke", "black")
.attr("class", "tbd")
.style("cursor", "move")
.on('mouseover', over2)
.on('mouseout', out)
.attr("link", function (d) { return d.link; });
}
function out() {
var t = d3.select(this);
t.attr("fill", "pink")
setTimeout(function() {
svg.selectAll(".lvl2").remove();
svg.selectAll(".lvl1").attr("fill", "black");
}, 2000);
}
你沒有選擇正確的東西。記住你正在設計這個矩形。所以選擇像這樣svg.selectAll('。lvl1 rect) – thatOneGuy