我遇到了noUislider的问题,因为我需要能够在触发幻灯片事件时区分不同的滑块。
我想(并且从阅读noUiSlider GitHub)我可以使用'this'参考,但它似乎不起作用。
我的代码:
var mix_slider = document.getElementsByClassName('slider');
for (var i = 0; i < mix_slider.length; i++)
{
noUiSlider.create(mix_slider[i], {
start: [100],
connect: "lower",
orientation: "vertical",
direction: "rtl",
range: {
'min': 0,
'max': 127
}
});
mix_slider[i].noUiSlider.on('slide', function(values, handle){
var id = this.id; //<-- Needs to be the id of the slider that triggered the slide event
var part = id.slice(-2);
var val = this.noUiSlider.get();//<-- This doesn't seem to work either
document.getElementById('input_' + part).value = val;
});
};
我不确定我做错了什么...我(在之前的noUiSlider版本上)使用了jQuery的$(this).attr('id');抓住id,但这也不起作用。
非常感谢任何帮助
答案 0 :(得分:5)
noUiSlider事件中的this
是滑块API。您可以使用this.target
在API中获取slider元素。 (要获取元素ID,请使用this.target.getAttribute('id')
)
var val = this.noUiSlider.get(); //<-- This doesn't seem to work either
由于this
是API,您可以执行this.get()
。