Undefined不是一个函数-JAVASCRIPT-D3

Undefined不是一个函数-JAVASCRIPT-D3,javascript,d3.js,Javascript,D3.js,嗨,我有一个甜甜圈饼图,我想让它增长时,页面加载 这是一个普通的甜甜圈图表,当我点击其中一个元素时,它会显示它的信息 我添加了生长部分,但我的鼠标单击部分(在生长部分之前工作)停止工作 它在.on(“mouseup”,function(d,i)行上表示“undefined不是函数” 所以它适用于转换,适用于鼠标,但不能同时适用于两者 renderarcs.append('path') .attr('d',arc) .attr("fill", function(d, i) { re

嗨,我有一个甜甜圈饼图,我想让它增长时,页面加载

这是一个普通的甜甜圈图表,当我点击其中一个元素时,它会显示它的信息

我添加了生长部分,但我的鼠标单击部分(在生长部分之前工作)停止工作

它在.on(“mouseup”,function(d,i)行上表示“undefined不是函数”

所以它适用于转换,适用于鼠标,但不能同时适用于两者

renderarcs.append('path')
    .attr('d',arc)
    .attr("fill", function(d, i) { return color(i); })

    .transition()
        .duration(2000)
        .attrTween("d", tweenPie)

    .on("mouseup", function(d, i){
            $("#mostra-nome-banda").html(arrayBandas[i]['name']);
            $("#pag-banda-plays").html(arrayBandas[i]['playcount']+" plays");
            linkArtista= arrayBandas[i]['url']

            d3.selectAll('path').transition()
                .duration(100)
                .attr("d", arc)

            d3.select(this).transition()
                .duration(100)
                .attr("d", arcOver);

        });

您需要在转换之前添加处理程序:

renderarcs.append('path')
.attr('d',arc)
.attr("fill", function(d, i) { return color(i); })

.on("mouseup", function(d, i){
        $("#mostra-nome-banda").html(arrayBandas[i]['name']);
        $("#pag-banda-plays").html(arrayBandas[i]['playcount']+" plays");
        linkArtista= arrayBandas[i]['url']

        d3.selectAll('path').transition()
            .duration(100)
            .attr("d", arc)

        d3.select(this).transition()
            .duration(100)
            .attr("d", arcOver);

    })

.transition()
    .duration(2000)
    .attrTween("d", tweenPie);

否则,您将事件处理程序附加到转换而不是选择。转换没有
mouseup
事件。

我以前尝试过,但由于某些原因它无法工作,但现在它工作得很好。非常感谢!