2012-01-04 34 views
1

我已在我正在构建的网页上实现了jQuery range slider,但似乎无法使其捕捉到特定的非均匀分布值。有没有人知道这是可能的jQuery滑块或如果有替代我可以使用?带任意捕捉点的范围滑块

作为一个更具体的例子,说我有一个从0到100的范围,并且我有一个像[0, 7, 32, 61, 67, 90, 100]这样的数组。我希望范围滑块只能选择数组中的值。

回答

4

可以使用slide callback限制所允许的位置:

触发动过程中,每一个鼠标移动。在事件中提供的值为ui.value表示手柄将因当前移动而产生的值。取消事件将阻止句柄移动并且句柄将继续具有其先前的值。

所以你只需要像这样:

var allowed = { 0: true, 7: true, /*...*/ 100: true }; 
$("#slider").slider({ 
    //... 
    slide: function(event, ui) { 
     if(!allowed[ui.value]) 
      return false; 
    } 
}); 

你也可以使用一个数组allowedreturn falseallowed.indexOf(ui.value)为负;我认为使用一个对象读得更好。

演示:http://jsfiddle.net/ambiguous/eRtBa/