2016-07-21 80 views
0

好的,所以我知道這已經被問過了,但我一直無法從我見過的例子中搞清楚。我有一個數年的d3滑塊。我試圖得到它沿着this.value()的行,或任何它的當前值是什麼。但是,我似乎無法得到它甚至console.log滑塊正在工作。任何幫助將不勝感激如何讓它讀取當前值!d3.js滑塊:如何獲得價值?

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

回答

2

我假設你正在使用由MasterMaps執行的D3滑塊。如果是,我的理解是,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); 
}));