web-dev-qa-db-ja.com

D3.jsノードにクラスがあるかどうかを確認する

次のg.sliceノードを選択するためにclick関数を記述し、それに.sliceActiveのクラスを追加して、元の.sliceActiveから.sliceを削除しようとしています。ただし、最後のg.slice.slice5のクラスを使用)にいる場合のみ、.sliceActiveg.sliceのクラスを使用して最初の.slice0に追加します。

これは私が今のところ機能していないものです。問題は、現在の.sliceActiveノードにも.slice5のクラスがあるかどうかを確認する方法がわからないことだと思います。

        $(".next").click(function(){
            var nextSlice;
            if(d3.select("g.sliceActive").hasClass("slice5")){
                nextSlice= d3.select(".slice0");
            }else{
                nextSlice= d3.select("g.sliceActive + g");
            }               
            d3.select("g.sliceActive").classed("sliceActive",false);
            nextSlice.classed("sliceActive",true);
        });

そして、これはウェブインスペクターでどのように見えるかです: enter image description here

22
NewToJS

2番目のパラメーターのないd3のclassed関数は、選択された要素に渡されたクラスがあるかどうかを返します。

d3.select("g.sliceActive").classed("slice5")

知っておくべきことを教えてください。

42
GabeIsman