Javascript 获取滑块值-d3/dc
我目前正在使用dc制作一些线条图。我还添加了一个滑块(我使用了d3.slider,但后来发现了一个不同的解决方案) 我希望使用滑块来过滤其他图形。是否有人对如何从切片器中获取所选值并进行筛选提出建议 要过滤,我的想法是:Javascript 获取滑块值-d3/dc,javascript,d3.js,dc.js,Javascript,D3.js,Dc.js,我目前正在使用dc制作一些线条图。我还添加了一个滑块(我使用了d3.slider,但后来发现了一个不同的解决方案) 我希望使用滑块来过滤其他图形。是否有人对如何从切片器中获取所选值并进行筛选提出建议 要过滤,我的想法是: d3.select("input[type=range]").on("change", function() { var gendersel = this.value; }); var data = _.where(data2, {variable: gendersel});
d3.select("input[type=range]").on("change", function() {
var gendersel = this.value;
});
var data = _.where(data2, {variable: gendersel});
但是,这不起作用
我还考虑使用crossfilter(可能更智能)进行过滤,但在获取滑块值时仍然存在问题:
var bytest = ndx.dimension(function(d) { return d.testvar; });
bytest.filter([gendersel, gendersel + .5])
我的滑块:
<div style="font-size:14px;font-family:sans-serif">Test Filter:
<input style="position:relative;top:4px;" type="range" min="1" max="2" value="1"></div>
测试过滤器:
我将此作为参考:
var gendersel不在全局范围内。您需要全局定义它,全局使用它,而不是在函数内部:
var gendersel;
$("input[type=range]").on("change", function() { //I'm not sure what the select() thing is, I just always use $() for selectors, so if you know d3.select works, then use it.
gendersel = this.value;
});
var data = _.where(data2, {variable: gendersel});
第二个潜在问题:如果滑块是由Javascript构建的,那么在为onchange事件创建此选择器时,该元素可能不存在。如果是这种情况,您必须创建如下更改事件:
$(".parentOfInputs").on("change", "input[type=range]", function() {
gendersel = $(this).value; //also not sure if in your case it should be $(this) or this. Try both.
});
parentOfInputs必须是在创建onchange事件之前已经存在的某个元素。哦,谢谢你的提示。威尔
gendersel=this.value代码>仍然更新全局变量(如果该变量仅在函数中?。。。对于我来说,它似乎没有更新(但可能有其他问题),我将在我的答案中添加一些内容。我更喜欢使用d3.select,这样就不需要添加jQuery依赖项。