2011-12-27 3 views
1

가능한 중복 :
jQuery UI Slider - max value (not end of slider)JQuery와 UI 슬라이더 - 증가하는 단계하지 않는다/무시

내 UI 슬라이더에 대한 비선형 단위를 사용하고

:

$(function() { 
    var trueValues = [5, 10, 20, 50, 100, 150, 165]; 
    var values =  [10, 20, 30, 40, 60, 90, 100]; 
    var slider = $("#parkSlider").slider({ 
     orientation: 'horizontal', 
     range: "min", 
    value: 40, 
     slide: function(event, ui) { 
      var includeLeft = event.keyCode != $.ui.keyCode.RIGHT; 
      var includeRight = event.keyCode != $.ui.keyCode.LEFT; 
      var value = findNearest(includeLeft, includeRight, ui.value); 
      slider.slider('value', value); 


     $("#amount").val(getRealValue(value)); 

      return false; 
     }, 

    }); 
    function findNearest(includeLeft, includeRight, value) { 
     var nearest = null; 
     var diff = null; 
     for (var i = 0; i < values.length; i++) { 
      if ((includeLeft && values[i] <= value) || (includeRight && values[i] >= value)) { 
       var newDiff = Math.abs(value - values[i]); 
       if (diff == null || newDiff < diff) { 
        nearest = values[i]; 
        diff = newDiff; 
       } 
      } 
     } 
     return nearest; 
    } 
    function getRealValue(sliderValue) { 
     for (var i = 0; i < values.length; i++) { 
      if (values[i] >= sliderValue) { 
       return trueValues[i]; 
      } 
     } 
     return 0; 
    } 
}); 

나는 165의 값을 무시하고, 그 증가분을 따라 가기를 원하지 않는다. 그래서 150은 150이 아니라 150까지만 가능하다. 슬라이더의 최대 값

그래픽 더 설명 할 수있다 : I 슬라이더 핸들의 위치가 150 값을 중지하고 (165) 값을 밟지 할

slider

. (나는 슬라이더의 최대를 설정할 수 있습니다 알고 있지만, 슬라이더 핸들이 다음 150 눈금을지나 확장으로 이것은 잘못된 동작입니다) 당신의 슬라이더 옵션에서

+0

접근에 대한 때문에 이 대답은 다소 다릅니다 – Jason

+0

내 대답은 다른 질문에 대한 내 답변과 정확히 동일합니다 (현재 업데이트되었습니다). –

답변

2

:

slide: function(event, ui) { 
      if (ui.value > 150) { 
        return false; 
       } 
      }