Eine Funktion einmal aufrufen, wenn Daten in d3 eingehen

8

Gibt es eine Möglichkeit, eine Funktion aufzurufen, wenn Daten mit Daten eingegeben werden (). () ()?

Zum Beispiel habe ich in dieser aktuellen jsfiddle: Ссылка eine Funktion, die eine Gruppe zeichnet, und ich möchte diese aufrufen Funktion, wenn neue Daten eingegeben werden. Die aktuelle jfiddle tut nichts anderes, als das Ziel ist, auf das rote Quadrat zu klicken und mit .data.enter ein violettes Quadrat zu zeichnen, wenn das rote Quadrat angeklickt wird.

Der spezifische Teil, an den ich arbeiten möchte, ist:

%Vor%

Danke

    
user2534068 08.07.2013, 17:44
quelle

2 Antworten

9

Sie möchten die Methode .call(function(d))

Damit wird Ihre Funktion einmal ausgeführt, wobei d als Array aller von Ihnen bereitgestellten Daten übergeben wird. i ist nicht für die Verwendung von call nach enter() definiert.

Wenn Sie mehrere Felder auf Basis von d zeichnen möchten, sieht Ihr Code etwa so aus:

%Vor%

Ich habe hier eine grundlegende Geige von erstellt.

Beachten Sie, dass Sie dies verwenden möchten, wenn Sie eine Funktion für die von .enter() zurückgegebene Auswahl an derselben Stelle aufrufen möchten, an der Sie sie verwenden. Es ist auch möglich, eine Funktion an das enter -Ereignis eines bestimmten DOM-Elements zu binden, indem Sie .on('enter',function) verwenden. Dazu müsste das Element, in das Sie Daten eingeben, bereits vorhanden sein.

    
ckersch 08.07.2013, 17:59
quelle
6

Der an die Aufrufmethode übergebene Callback übergibt tatsächlich die Auswahl, nicht die Daten.

%Vor%

Also, was Sie wahrscheinlich gesucht haben, ist die jeweilige Methode.

%Vor%     
SubOne 20.07.2016 17:19
quelle

Tags und Links