2

クリックされたときにテキストノードの状態を変更したいのですが、正しくアクセスできないようです。クリックしても何も起こりません(jqueryセレクターを使用しない限り、すべてのコマンドが機能するわけではありません)。だから私の質問は: $(this) に相当する d3.js は何ですか?

var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
    var target = $(this).attr('target');
    var visible  = $(this).attr('visible');
    if(visible==='1'){
        svg.selectAll(".bar."+target)
                .transition()
                .duration(500)
                .ease("elastic")
                .style('display','none');
    $(this).attr('visible','0')
                .style('text-decoration','line-through');
    }else{
        svg.selectAll(".bar."+target)
                    .transition()
                    .duration(500)
                    .ease("elastic")
                    .style('display','inline');
        $(this).attr('visible','1');
        $(this).removeClass('active');
    }
        });
4

1 に答える 1

0

d3.select(this)が正解であることがわかります。

コードは次のとおりです。

var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
    var target = $(this).attr('target');
    var visible  = $(this).attr('visible');
    if(visible==='1'){
        svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style('display','none');
        d3.select(this).attr('visible','0').style('text-decoration','line-through');


    }else{
        svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style('display','inline');
        d3.select(this).attr('visible','1').style('text-decoration','');
    }
});
于 2013-07-21T19:54:23.443 に答える