在 js 中将鼠标悬停会引发未定义的错误

mouseover in js throws undefined error

本文关键字:未定义 错误 悬停 js 鼠标      更新时间:2023-09-26

在下面的代码片段中,当我尝试为 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(){}),而是在.transition()返回的 D3 转换上调用

我猜你在transition()电话之前移动了它。在大多数情况下,通常的模式是将transition()duration()及其attr()作为函数链的最后一部分。

在您的代码中")"丢失。检查代码的最后一行

我不得不在创建SVG的位置添加onclick,而不是在我附加它的地方......它解决了我的问题。