【发布时间】:2017-01-03 01:13:35
【问题描述】:
我有一些 JavaScript 代码,该循环会抛出一个列表,并为每个元素创建一个滑块。其次,它需要一个事件处理程序,因此当滑块更改时,它会将值写入输入。
第一次运行 for 时,一切正常,输入获取值,但是当我手动更改滑块时,它会抛出错误:
未捕获的类型错误:无法读取未定义的属性“maxValue”
代码:
for (i = 0; i < sliders.length; i++)
{
noUiSlider.create(sliders[i].object[0], {
start: sliders[i].start,
step: 1,
connect: true,
range: sliders[i].range
});
sliders[i].object[0].noUiSlider.on('update', function( values, handle ) {
if ( handle ) {
console.debug(sliders[i]);
sliders[i].maxValue.val(Math.floor(values[handle]));
} else {
sliders[i].minValue.val(Math.floor(values[handle]));
}
});
}
在滑块变量中我有这个:
var sliders = [
{
"object": $('#number-of-passangers'),
"start": [4, 6],
"range": {
"min": 2,
"max": 15
},
"minValue": $("#min-passanger"),
"maxValue": $("#max-passanger")
},
{
"object": $('#cost-per-day'),
"start": [3500, 65000],
"range": {
"min": 3500,
"max": 65000
},
"minValue": $("#min-cost"),
"maxValue": $("#max-cost")
},
]
【问题讨论】:
-
slider 包含什么,我们如何使用 sliders.length 获取长度?它在代码中没有定义。你能发布完整的代码吗?
-
滑块是一个简单的变量:
var sliders = [ { "object": $('#number-of-passangers'), "start": [4, 6], "range": { "min": 2, "max": 15 }, "minValue": $("#min-passanger"), "maxValue": $("#max-passanger") }, { "object": $('#cost-per-day'), "start": [3500, 65000], "range": { "min": 3500, "max": 65000 }, "minValue": $("#min-cost"), "maxValue": $("#max-cost") }, ] -
更新问题并提供完整源代码。
标签: javascript list for-loop