jQuery Slider值给出除选项值之外的其他结果

时间:2013-07-23 15:04:49

标签: jquery jquery-ui-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和25000。 在ui.value还有24500 ......

我希望有人可以帮助我: - )

如果你想弄清楚这个错误:http://jsfiddle.net/xzhgd/

1 个答案:

答案 0 :(得分:0)

感谢我的一位同事,我们已经找到了问题和解决方案。 鉴于我的最小值为2500,步长为2000,您无法达到我的给定值25000,因此滑块将其更改为24500,实际上是可以达到的。

我认为这是UI中的“设计问题”,因为我宁愿让我的价值更正,并将我的最小值和最大值调整得更严格。毕竟你想要一个正确的价值和更严格的边界仍然意味着一个正确的价值。所以这就是我如何解决这个问题,因此它将以“我的方式”运作。

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

然后我将real_min指定为滑块的最小值。