2016-06-15 6 views
0

スライドイベントが発生したときに異なるスライダを区別できるようにするために、noUisliderに問題があります。noUiSliderスライドイベント発信者のIDを取得

私は 'this'リファレンスを使用できると思っていましたが(noUiSlider GitHubを読んで)、うまくいきませんでした。

マイコード:私は私が間違ってやっているか不明だ

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の$(この).ATTR( 'ID')を使用。 IDをつかむために、これはどちらも動作しません。

すべてのヘルプは大幅に

答えて

3

をいただければ幸いですnoUiSliderのイベントでthisはスライダーAPIです。 this.targetを使用してAPIのスライダー要素を取得できます。 this以来

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

がAPIである(要素のIDを取得するには、this.target.getAttribute('id')を使用)、あなたはthis.get()を行うことができます。

+0

ありがとう、これは私の質問に完全に答えました! – cSmout

+0

私はまだここに問題があると言って申し訳ありません... 'this.target.getAttribute()'は "未定義のgetAttributeプロパティを読み取れません"をスローします。 奇妙なことに、 'this.get()'は実際にスライダの値を返しますので、私はちょっと困惑しています – cSmout

+0

あなたはどのバージョンを使用していますか?使用例:https://jsfiddle.net/leongersen/5vf646xt/ – Lg102

関連する問題