Javascript 在Chart.js中实现范围滑块

Javascript 在Chart.js中实现范围滑块,javascript,chart.js,uislider,Javascript,Chart.js,Uislider,此错误发生在两天前,我想确定您是否仍然有动力解决此问题? 这是件容易的事,真的。但是,您需要进一步了解它的工作原理。 首先,您在$(document.ready)上编写了此代码,这意味着此代码仅在页面就绪后运行。(一次) 图表不可能更新 var heating[] = parseInt(document.querySelector('#points').value); 此外,您还添加了事件 <input type="range" class="slider" value="5" min

此错误发生在两天前,我想确定您是否仍然有动力解决此问题?
这是件容易的事,真的。但是,您需要进一步了解它的工作原理。

首先,您在$(document.ready)上编写了此代码,这意味着此代码仅在页面就绪后运行。(一次) 图表不可能更新

var heating[] = parseInt(document.querySelector('#points').value);
此外,您还添加了事件

<input type="range" class="slider" value="5" min="30" max="50" id="points" onchange="function()">
如果您不能使用调试工具,我建议您至少使用警报。 (我在jsfiddle中使用过)
这样您就可以判断代码是否正在运行

更新1
第一个问题。
我更新了图像,希望您能理解。
有各种各样的方法,但我选择了两种。

第二个问题。
基本上,我们不在HTML上使用JavaScript变量。 不过,有些框架或库看起来是可能的

// Set value, min and max.
// We can't use JavaScript variable on HTML, usually.
var slider = $("#points");
slider.prop("min", 0);
slider.prop("max", 1000);
slider.val(1000);

更新2
我发现数据集可以有任何参数,因此您可以添加任何参数。
例如,我添加了“barId”并修改了滑块(添加id,与“barId”相同)。

嗨,非常感谢您的回复。它成功了,我真的很感谢你给我的所有帮助。然而,快速问题是,不可能将输入范围分配给特定变量。而不是eah数据集,因为在切换输入范围后对数据进行排序时,它与同一个变量不对应。我试过这样的方法:var heatDatasts=barGraph.data.datasets[mpg];但它也不起作用,是否可以有自定义的最小和最大范围,这将使它更容易。因为当我从每个位置获取数据时,我不希望有预设的数据范围,而是更灵活。例如,在这种情况下,输入min=“0”和max=“this.currentvalue(mpg)或任何特定变量。如你所知,记录最小值和最大值没有那么有效对不起,我不明白你所说的其他参数是什么意思。它不仅仅是var heatDatasts=barGraph.data.datasets[mpg];我指的是更新图像、标签、背景色等的列。稍后我将向您展示,包括第二个问题。
<input type="range" class="slider" value="5" min="30" max="50" id="points">

$("#points").on("change", function() {
    // update chart...
});
// Get heating datasets. (Yes, you can write 'barGraph.data.datasets[7].data = xxx')
var heatDatasts = barGraph.data.datasets[7];
// Update value
heatDatasts.data = [$(this).val()];
// Apply it to the view.
barGraph.update();
/*************** Pattern1 (Simply, using jQuery each) ***************/
// Loop
$.each(barGraph.data.datasets, function() {
    // Check the label or stack, in this case.
    if (this.label === "Heating Electrification") {
        // It's okay
        // heatDatasets = this;
        // Set value is also okay.
        this.data = [sliderValue];
        return false;
    }
});
 /*************** Pattern2 (using jQuery grep or filter)***************/
 var heatDatasets = $.grep(barGraph.data.datasets, function(datasets) {
     return (datasets.label === "Heating Electrification");
 })[0];
 heatDatasets.data = [sliderValue];
// Set value, min and max.
// We can't use JavaScript variable on HTML, usually.
var slider = $("#points");
slider.prop("min", 0);
slider.prop("max", 1000);
slider.val(1000);