javascript - js中的鼠标悬停引发未定义的错误

标签 javascript svg d3.js

在下面的代码片段中,当我尝试为 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

最佳答案

要解释为什么移动点击处理程序解决了您的问题,是因为您没有在 D3 选择上调用 .on('click', function(){}) ,而是在 D3 上调用.transition() 返回的 transition

我猜您在 transition() 调用之前移动了它。在大多数情况下,通常的模式是将 transition()duration() 及其 attr() 作为功能链。

关于javascript - js中的鼠标悬停引发未定义的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27147759/

相关文章:

javascript - Chartjs 不渲染图表并且没有抛出错误

javascript - 带有 Zen Coding 的 CodeMirror 不工作

javascript - Microsoft Edge 不会在对 gzipped SVG 文件的 ajax 调用中呈现 SVG 样式元素

angular - 在 selectAll 之后尝试加入时如何修复 ".join is not a function"?

css - 如何使用对象标签为 SVG 设置动画

javascript - dc.js d3+crossfilter.top 将过滤后的数据导出到CSV

javascript - 如何创建自定义文本 - React Native

c# - 如何在 javascript 中获取 UTC 偏移量(类似于 C# 中的 TimeZoneInfo.GetUtcOffset)

javascript - D3js : Draw pack layout without the outermost circle

javascript - 使 d3 中的子节点靠近父节点