2012-07-10 49 views
1

我很新使用jQuery,所以请原谅我,如果这个问题是荒谬的。jQuery滑块赋予不正确的值

我有一个jQuery滑块,显示当前选定的值,满分100。我现在需要得到余数,以便我可以在稍后的计算中使用它。

我的代码显示这两个值,但percent2往往是1或2任一的数字什么应该显示侧,从而将percent1显示为100和percent2将显示为2

的代码是:

<script type="text/javascript"> 
    $(function() { 
     $("#percent_slider").slider({ 
      orientation: "horizontal", 
      range: false, 
      min: 0, 
      max: 100, 
      value: 50, 
      step: 1, 
      slide: function (event, ui) { 
       $("#percent1").text(ui.value); 
       var percent2 = 100 - ($("#percent_slider").slider("value")); 
       $("#percent2").text(percent2.toFixed(0)); 
      }, 
     }); 
    }); 
</script> 

这是找到我想要的价值的最佳方式吗?

+0

你能告诉一个([SSCCE(HTTP:/ /sscce.org/))[JS小提琴](http://jsfiddle.net/)或[类似](http://jsbin.com),演示显示发生了什么? – 2012-07-10 17:33:03

+0

这是什么用途:http://jsbin.com/ofahew/edit#javascript,html,live – Haribo83 2012-07-10 17:45:22

+0

这很有趣,它在'ui.value + percent2'等于'99'和'101'之间交替......奇怪。 – 2012-07-10 17:51:28

回答

1

出于某种原因,我真的没有什么想法,为什么,这个工程:

slide: function(event, ui) { 
    var sliderVal = ui.value, 
     percent2 = 100-sliderVal; 
    $("#percent1") 
     .text(sliderVal); 
    $("#percent2") 
     .text(percent2); 

    console.log(sliderVal, percent2, sliderVal + percent2); 

JS Bin demo

虽然我不完全确定,但我假设ui.value变量的重复评估之间存在时间延迟,在整个函数中;将该值分配给变量似乎消除了延迟,或者至少将其最小化。

+0

太棒了 - 完美的作品。 – Haribo83 2012-07-10 18:06:36

+0

我很高兴听到它!我为了它的工作原理想了一个猜测,但是......我真的不确定它应该...... = /还是!我很高兴得到了帮助,并感谢*你*接受! =) – 2012-07-10 18:08:34

0

也许是需要被prsed作为一个整数,看来这个值是一个字符串...使用parseInt函数()这样的:

var percent2 = 100 - parseInt($("#percent_slider").slider("value")); 
+0

感谢这一点,但不幸的是我仍然得到相同的结果 – Haribo83 2012-07-10 17:58:13