私は複数のスライダを持っており、それぞれがフォームフィールドにリンクしています。それらのいずれかが更新されると、ドラッグまたは入力のいずれかによって、私は他のすべてをリセットしたい。他のすべてのnoUiSlidersをリセットするにはどうしたらいいですか?
これは、ユーザーが別のスライダー(フォーム)に変更を保存してから別のスライダー(フォーム)に変更してもらいたいためです。そうでなければ、私は変更をリセットします。
私はupdate
かset
イベントに耳を傾け、それは無限ループの引き金になるので、他のスライダーに.set()
を呼び出すことはできません。
イベントをトリガーすることなくスライダーをリセットするにはどうすればよいですか?誰かが違うアプローチをしていますか? "スライド"
SLIDER1.noUiSlider.on('slide', function(){
SLIDER2.noUiSlider.set(*defaultvalue*);
SLIDER3.noUiSlider.set(*defaultvalue*);
...
});
"スライド" を使用して
(要求されるようにコードを追加)
slider.noUiSlider.on('set', function(values, handle) {
$(slider).parents('form').siblings('form').find('my-slider').each(function() {
var values = this.noUiSlider.get();
var originals = $(this).closest('.mirror-field').toArray();
values.forEach(function(val, index) {
if (! val.isSame(originals[index].value)) { // val is a 'moment' object
values[index] = originals[index].value;
}
});
this.noUiSlider.set(values); // this is when chaos is unleashed
});
});
downvoteで詳述してください。 – rzb