好的,所以我知道之前已经问过这个问题,但是我一直无法从我见过的例子中找出它。我有一个年龄范围的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!")
})
答案 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);
}));