milesdavis
New member
Hey Leute,
ich habe folgenden Code:
Der Code erzeugt im Grunde mit D3.js 4 Kreise und dazu ein Drop-Fenster mit 4 Auswahlmöglichkeiten. Diese Auswahlmöglichkeiten sind die Indexe i des Arrays "data", also 0, 1, 2, 3.
Dies wird durch die zeile
ermöglicht.
Durch Klicken der Indexe im Drop-Fenster verschwinden die Kreise mit Hilfe der Splice-Funktion.
Mein Ziel ist nun folgendes:
ich möchte auf einen Index i im Drop-Fenster klicken, sagen wir mal 2 und diesen Wert in einer Variable "a" zwischenspeichern. Dieser soll dann automatisch von der Splice-funktion verwendet werden, also
.
Ich möchte also, dass wenn man den Index "2" , quasi 2 Elemente durch die Splice-Funktion entfernt werden. Und wenn ich Index "3" anklicke, dann sollen 3 Elemente entfernt werden.
Kann mir einer von euch dabei helfen?
Vielen lieben Dank
Gruss
- - - Aktualisiert - - -
Ich habe es schon mit "selectedIndex" probiert, aber das war wohl nicht die richtige Lösung.
- - - Aktualisiert - - -
ich habe folgenden Code:
Code:
var data = [10,20,30,40];
var color = d3.schemeCategory10; // color array built in
//// Add the select and options:
var select = d3.select('body')
.append('select')
.on('change',function() { update(this.value) });
var start = select.append('option')
.html("select: ");
var options = select.selectAll('.option')
.data(data)
.enter()
.append('option')
.attr('class','option')
.attr('value',function(d,i) { return i; })
.html(function(d,i) { return i; });
//// Add the circles (and svg)
var svg = d3.selectAll('body')
.append('svg')
.attr('width',500)
.attr('height',200);
var circles = svg.selectAll('circle')
.data(data)
.enter()
.append('circle')
.attr('cx',function(d,i) { return i * 30 + 50; })
.attr('cy',50)
.attr('r',10)
.attr('fill',function(d,i) { return color[i]; });
// Update everything:
function update(i) {
data.splice(i,1); // remove that element.
// Update and remove option from the select menu:
options.data(data).exit().remove();
// Remove that circle:
circles.data(data).exit().remove();
circles.attr('cx',function(d,i) { return i * 30 + 50; })
.attr('fill',function(d,i) { return color[i]; });
// reset the select menu:
start.property('selected','selected');
}
Der Code erzeugt im Grunde mit D3.js 4 Kreise und dazu ein Drop-Fenster mit 4 Auswahlmöglichkeiten. Diese Auswahlmöglichkeiten sind die Indexe i des Arrays "data", also 0, 1, 2, 3.
Dies wird durch die zeile
Code:
.html(function(d,i) { return i; });
Durch Klicken der Indexe im Drop-Fenster verschwinden die Kreise mit Hilfe der Splice-Funktion.
Mein Ziel ist nun folgendes:
ich möchte auf einen Index i im Drop-Fenster klicken, sagen wir mal 2 und diesen Wert in einer Variable "a" zwischenspeichern. Dieser soll dann automatisch von der Splice-funktion verwendet werden, also
Code:
data.splice(i,a);
Ich möchte also, dass wenn man den Index "2" , quasi 2 Elemente durch die Splice-Funktion entfernt werden. Und wenn ich Index "3" anklicke, dann sollen 3 Elemente entfernt werden.
Kann mir einer von euch dabei helfen?
Vielen lieben Dank
Gruss
- - - Aktualisiert - - -
Ich habe es schon mit "selectedIndex" probiert, aber das war wohl nicht die richtige Lösung.
- - - Aktualisiert - - -