2016-06-15 6 views
0

Ich habe Probleme mit noUislider, in dem ich in der Lage sein muss, verschiedene Schieberegler zu unterscheiden, wenn Dia-Ereignisse ausgelöst werden.noUiSlider bekomme ID von Dia Ereignis Anrufer

Ich dachte (und durch das Lesen des noUiSlider GitHub), dass ich in der Lage sein würde, die 'this' Referenz zu verwenden, aber es scheint nicht zu funktionieren.

Mein Code:

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; 
}); 
}; 

Ich bin nicht sicher, was ich falsch mache ... Ich hatte (auf der vorherigen noUiSlider Version) verwendet jQuery $ (this) .attr ('id'); um die ID zu greifen, aber das funktioniert auch nicht.

Jede Hilfe sehr geschätzt

Antwort

3

Die this in noUiSlider die Ereignisse werden würde, ist der Schieber API. Sie können das Schieberelement in der API mithilfe von this.target abrufen. (Der Element-ID zu erhalten, verwenden this.target.getAttribute('id'))

var val = this.noUiSlider.get(); //<-- This doesn't seem to work either 

Da this die API ist, können Sie this.get() tun.

+0

Danke, das beantwortete meine Frage perfekt! – cSmout

+0

Es tut mir leid zu sagen, dass ich immer noch Probleme habe hier ... 'this.target.getAttribute()' wirft die "kann nicht lesen Eigenschaft 'getAttribute' von undefined". Seltsam, 'this.get()' gibt tatsächlich den Wert des Schiebereglers zurück, also bin ich ein wenig verblüfft – cSmout

+0

Welche Version verwenden Sie? Arbeitsbeispiel: https://jsfiddle.net/leongersen/5vf646xt/ – Lg102