jquery两个滑块价格不同

时间:2012-09-11 13:55:23

标签: jquery slider

我现在跟着以下人员:

我有两个滑块:一个有数量,另一个有契约期。 如果数量上升,每件价格下降。 如果合同期限增加,每件的价格会下降更多。

我现在有这个:http://jsfiddle.net/vBVkL/16/ 不知何故,当我使用批次时,我无法改变每件的价格。

    qty = ui.value;  //-> this works

    qty = batches[ui.value - 1]; //-> this doesn't work

有人可以帮我解决这个问题吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

更改滑块处理程序中的以下行:

$("input").val(prices[contract][qty - 1]);

$("input").val(prices[contract][ui.value - 1]);

原始代码使用的是变量qty,这是一个字符串。当你试图从中扣除1时,它会导致"不是数字"它不能用于索引batches数组。

您的prices数组也存在问题。它们只包含三个值,但您的滑块可以选择第四个,您需要在这些数组的末尾添加一个值:

var prices = {
    'none': [10, 9, 8, ?],
    '12 months': [9, 8, 7, ?],
    '24 months': [8, 7, 6, ?],
    '36 months': [7, 6, 5, ?],
};

Updated fiddle

我不确定的是,当页面首次加载时,滑块无法正确制作动画。

修改

页面加载时滑块不工作的原因是由于用于初始化变量的值:

var contract = 'Geen'

当移动滑块时,代码$("input").val(prices[contract][qty - 1]);尝试在Geen数组中查找值contracts并失败,因此该函数因错误而结束并且jQueryUI永远不会完成它的工作是更新滑块。直到你移动第二个滑块才能正确设置变量。

contract的初始值设置为"无"表示代码将正确执行,滑块将设置动画。

您还有一个错误,即在设置价格时更改“合同期间”滑块会忽略数量滑块的值。这一行:

$("input").val(prices[contract][ui.value - 1]);

in" slider2"事件处理程序应更改为:

$("input").val(prices[contract][$("#slider1").slider("value") - 1]);

查看the updated fiddle现在一切正常的地方。