2013-03-12 14 views
6

Ich bin neu zu d3 sowie Javascript, und ich habe Probleme beim Aktualisieren des Datasets, sowie das Neuzeichnen der Balken. Dies ist der Code, den ich bisher betrachtet habe.D3 Update-Datensatz auf klicken und neu zeichnen das Balkendiagramm

http://jsfiddle.net/TwEhT/2/

Ich habe eine Funktion clickEvent, dass bei einem Klick auf einen Balken hervorgerufen wird. Diese Funktion fordert zur Eingabe eines Wertes auf.

function clickEvent() 
{ 
    var op = prompt("Please enter the value", ""); 
}; 

Was ich tun müssen, ist die Datenmenge auf dem Index des Klick zu aktualisieren, und die Rects neu zu zeichnen, so dass sie die Änderung des Datensatzes reflektieren.

Jede Hilfe würde geschätzt. Vielen Dank.

+0

Sie könnten versuchen, Blick auf 'return'ing etwas aus, dass' clickEvent' Funktion (oder vielleicht einen Array-Index-Wert in Ihrem 'dataset' Ändern irgendwo innerhalb der/clickEvent-Funktion, so dass der Wert in Ihrem Dataset/Graphen widergespiegelt werden kann. – summea

Antwort

10

Für ein sehr einfaches Beispiel könnten Sie das Dataset direkt aktualisieren und den Strichzeichnungscode in eine render() -Funktion einfügen, die Sie aufrufen können, um die Änderungen erneut zu rendern.

var dataset = [...]; 

function render() { 
    // bind dataset to rects and draw here 
} 

function clickEvent(d, i) { 
    var op = prompt("Please enter the value", d); 
    dataset[i] = parseInt(op, 10); 
    render(); 
}; 

Hier ist ein aktuelles Beispiel im Code: http://jsfiddle.net/findango/TwEhT/4/

+0

Danke! Das ist genau das, was ich brauchte :) – user2159121