2017-07-03 6 views
0

チェックボックスを使用して追加したクラスを削除できません。チェックボックスがオンになっています。ユーザーがチェックを外すと、クラス「(hideRect」、true)を持つ「hideRect」クラスが追加されます。 これは素晴らしいですが、ボックスをもう一度チェックしてもクラスは消えません。D3クラスを追加してクラスを削除するには、チェックボックスを使用してください。

this.$node.append('input') 
    .attr('type', 'checkbox') 
    .attr('checked', true) 
    .attr('value', 'med') 
    .on('click',() => this.updateRectLine()); 
    } 

private updateRectLine() { 

    //var rect = this.$node.getElementsByClassName('.MEDICATION'); 
    var cbMed = this.$node.attr("checked"); 
    if (cbMed !== true){ 
     this.$node.selectAll(".MEDICATION").classed('hideRect', true); 
    } 

    else if (cbMed == true){ 
     this.$node.selectAll(".MEDICATION").classed('hideRect', false); 
    } 

}事前に

感謝:

は、ここに私のコードです!あなたはこの

private updateRectLine() { 
    var cbMed = this.$node.select("input[type='checkbox']").prop("checked"); 
    if (!cbMed) 
    this.$node.selectAll(".MEDICATION").classed('hideRect', true); 
    else 
    this.$node.selectAll(".MEDICATION").classed('hideRect', false); 
} 

.attr()のような機能が唯一のチェックボックスがチェックボックスのチェック状態をチェックするために初期化された、チェックボックスにプロパティchecked存在を使用する値を返す、以下の機能を更新する必要が

+0

'.MEDICATION'クラスとチェックボックスの要素との関係は何ですか?関数の最初の行で、その選択肢の値をログに記録して、期待する要素が含まれているかどうか確認してください。 – anbnyc

+0

ちょっと@anbnyc返信ありがとう!コンソールの右の要素に追加されたクラスを見ることができますので、正しい選択をターゲットにしていますが、クラスを削除することはありません! – jrogers12

+0

他に何が問題なのか考えることはできません。再現可能な例(JSFiddleのような)を提供できる場合は、もっと詳しく説明できるかもしれません。これはおそらく関連していませんが、 'else if'をチェックするために三つ組(' cbMed === true')が必要な場合があります。 – anbnyc

答えて

2

要素

+0

返事ありがとうございます! – jrogers12

関連する問題