d3.js Slider:如何获得价值?

时间:2016-07-21 18:26:05

标签: javascript d3.js slider

好的,所以我知道之前已经问过这个问题,但是我一直无法从我见过的例子中找出它。我有一个年龄范围的d3滑块。我试图让它按照this.value()的方式控制某些东西,或者它当前的值是什么。但是,我似乎无法得到滑块正常工作的console.log。任何帮助将不胜感激如何让它读取当前值!

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!")
})

1 个答案:

答案 0 :(得分:2)

我假设你正在使用MasterMaps实现的D3-Slider。如果你是,我的理解是d3.select('#documentID').call(d3.slider())返回显示滑块的HTML块以及所有必要的样式。但是,滑块的HTML块不包含事件处理程序。

您可能需要的是:

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);
}));