2016-11-22 60 views
0

我想在一個頁面中創建多個noUiSliders,但是我得到這個錯誤「noUiSlider.create需要一個單一的元素」。多個noUiSlider實例化問題

基本上,我從不同的功能實例化兩個(或更多)滑塊(不同類),但我得到上述錯誤。

任何有此插件經驗的人?

下面是一個例子:

var Slider1Handler = function(){ 

var slider1 = document.getElementsByClassName('slider1'); 
noUiSlider.create(slider1, { 
     start: [ 0 ], 
     connect: [true, false], 
     step: 1000, 
     tooltips: true, 
     orientation: "horizontal", 
     range: { 
     'min': [ 2000 ], 
     'max': [ 10000 ] 
     } 
}); 
}; 

var Slider2Handler = function(){ 

var slider2 = document.getElementsByClassName('slider2'); 
noUiSlider.create(slider2, { 
     start: [ 0 ], 
     connect: [true, false], 
     step: 1000, 
     tooltips: true, 
     orientation: "horizontal", 
     range: { 
     'min': [ 2000 ], 
     'max': [ 10000 ] 
     } 
}); 
}; 
+0

只是一個猜測,但由於getElementsByClassName方法,即使只有一個elment由該類返回一個集合,試圖'document.getElementsByClassName(「slider1」)[0]' – tobiv

回答

1

getElementsByClassName返回一個nodeList,而不是一個單一的元件。您可以使用以下任意選項:

  • 向元素添加一個id並使用getElementById;
  • nodeList中的第一個元素:document.getElementsByClassName('slider2')[0];
  • 使用document.querySelector('.slider2'),其中返回單個元素;
+0

謝謝真的很感激! – Beppe

+0

你知道如何在標籤中顯示字符串而不是小數嗎?它似乎只顯示數字,我會有點瘋狂找到解決方案:/ – Beppe

+0

您可以使用['format'](https://refreshless.com/nouislider/slider-read-write/#section-格式)選項。 – Lg102