2013-07-23 3 views
1

페이지에 두 개의 슬라이더가있는 페이지가 있는데, 특별한 것은 없습니다. 그러나 슬라이더를 제어하는 ​​값과 슬라이더를 제어하는 ​​외부 버튼을 사용하여 작업하는 동안 이상한 문제를 발견했습니다.jQuery Slider 값이 옵션 값보다 다른 결과를 내고 있습니다.

이것은 내 슬라이더입니다.

var slider = $("#amount_slider").slider({ 
     value: amount, 
     min: min_amount, 
     max: max_amount, 
     step: step, 
     slide: function(event, ui) { 
      $("#CREDIT").val(ui.value); 
      handle_amount.qtip('option', 'content.text', '€ ' + FormatNumber(ui.value)); 
     }, 
     change: function(event, ui) { 
      $("#CREDIT").trigger('blur'); 
      Calculate(); 
     } 
    }); 

console.log($("#amount_slider").slider("value")); 
console.log($("#amount_slider").slider("option", "value")); 

그리고이 출력을 수행 할 때 두 가지 결과가 나타납니다!

나는 당신이 주변에 바이올린하려면 누군가가

:-) 나를 도울 수 있기를 바랍니다 .. 결과는 25000해야하지만, 나는 24500도있다 ui.value에서 24500 및 25000 를 얻을 수 버그 : http://jsfiddle.net/xzhgd/

+0

코드를 읽을 수 있도록 포맷하십시오. – We0

답변

0

내 동료 덕분에 우리는 문제와 해결책을 찾을 수있었습니다. 최소값이 2500이고 단계가 2000 인 경우 주어진 값인 25000에 도달 할 수 없으므로 슬라이더가이 값을 실제로 도달 할 수있는 24500으로 변경합니다.

내 생각에는 이것이 UI의 '디자인 문제'라고 생각합니다. 그 이유는 제 값이 정확하고 내 최소값과 최대 값을보다 엄격하게 조정하기 때문입니다. 결국 정확한 값을 원하고 더 엄격한 경계선은 여전히 ​​올바른 값을 의미합니다. 그래서 여기에 내가 이것을 해결 했으므로 그것이 '내 방식'으로 작용할 것입니다.

var factor = Math.Floor((amount - min_amount)/step); 
var real_min = amount - (factor * step); 

그런 다음 슬라이더의 최소값으로 real_min을 지정합니다.