2016-07-21 13 views
0

Ok, alles, also weiß ich, dass das schon einmal gefragt wurde, aber ich habe Probleme, es aus den Beispielen herauszufinden, die ich gesehen habe. Ich habe einen D3-Schieberegler mit einer Reihe von Jahren. Ich versuche, etwas zu bekommen, das den Linien von this.value() entspricht oder was auch immer der aktuelle Wert ist. Allerdings kann ich es nicht scheinen, es sogar zu console.log, dass der Slider funktioniert. Jede Hilfe würde geschätzt werden, wie sie den aktuellen Wert lesen kann!d3.js Slider: Wie bekomme ich Wert?

var timeSlider = d3.select('#slider7').call(d3.slider().axis(true).min(1970).max(2000).step(1)); 
timeSlider.on("slide", function(evt, value) { 
    console.log("slider is working!") 
}) 

Antwort

2

Ich nehme an, Sie durch MasterMaps die D3-Slider implementiert verwenden. Wenn Sie sind, ist mein Verständnis, dass d3.select('#documentID').call(d3.slider()) den HTML-Block zurückgibt, der den Slider zusammen mit dem notwendigen Styling anzeigt. Der HTML-Block des Schiebereglers enthält jedoch keine Ereignisbehandlungsroutinen.

Was Sie brauchen, ist etwas Ähnliches:

var timeSlider = d3.select('#slider7').call(d3.slider().axis(true).min(1970).max(2000).step(1)); 
timeSlider.call(d3.slider().on("slide", function(evt, value) { 
    // `value` is the percentage travelled on the slider 
    // Selected year will therefore be value * (max - min) + min 
    var year = value/100 * (2000-1970) + 1970; 
    console.log("The slider's current value is:" + year); 
}));