我試圖讓一個簡單的鼠標懸停工作在d3中的某些矩形上。如果我將SVG附加到「body」,那麼一切正常(第一行代碼)。如果我將選擇更改爲「.chart1」而不是「body」,則鼠標懸停不起作用。有沒有人見過這個?d3鼠標懸停事件不會觸發如果我將svg附加到div
var chart = d3.select(".chart1").append("svg")
.attr("width", 250)
.attr("height", 50);
data = ["a", "b", "c",]
for(var i = 0; i < data.length; i++){
var rect = chart.append("rect")
.attr("x", 20*i)
.attr("y", 10)
.attr("width", 15)
.attr("height", 15)
chart.selectAll('rect')
.on("mouseover", function() {
d3.select(this)
.attr("opacity", .5)
})
.on("mouseout", function() {
d3.select(this)
.attr("opacity", 1)
});
的jsfiddle:https://jsfiddle.net/jasonleehodges/um5f5ysv/
它的工作:https://jsfiddle.net/gerardofurtado/8s6nhxhz/ –
與您的問題無關,但您不需要使用for循環在D3代碼中追加元素。這不是慣用的D3。 –
是的,不知道我的堆棧中是否存在某種類型的碰撞,但它不在我的jsfiddle中工作:https://jsfiddle.net/jasonleehodges/um5f5ysv/ – jasonleehodges