在以下代码段中,当我尝试为svg添加mouseover
功能时,它会抛出Uncaught TypeError: undefined is not a function on mouseover
。
svg.selectAll(".bar1")
.data(clensedData)
.transition()
.delay(function (d, i) {
return i / clensedData.length * 10;
})
.duration(500)
.attr("class", "bar1")
.attr("x", function (d) {
return x(d.City)
})
.attr("width", x.rangeBand())
.attr("y", function (d) {
return y(d.Cases);
})
.attr("height", function (d) {
return height - y(d.Cases);
})
.attr("fill", function (d, i) {
if (d.diff == max_of_array)
return "green";
if (d.diff == min_arr)
return "red";
else
return "orange";
})
.on("mouseover", function () {
});
有什么想法吗? ps:js的新手
答案 0 :(得分:1)
解释为什么移动点击处理程序修复了您的问题是在您没有在D3选择上调用.on('click', function(){})
之前,而是在D3 过渡之前.transition()
是返回。
我猜你在transition()
电话之前移动了它。在大多数情况下,通常的模式是将transition()
,duration()
及其attr()
作为函数链的最后一部分。
答案 1 :(得分:0)
在您的代码")"不见了。检查代码的最后一行
答案 2 :(得分:0)
我不得不添加onclick我创建的svg而不是我追加它的地方..它解决了我的问题。