2012-03-06 60 views
0

这是我正在尝试解决..本质上,我希望能够更新输入时的值,同时使用jQuery滑块UI检查复选框。所以,每个复选框对应一个不同的值。选中复选框后,该值应该相乘。jQuery UI Slider值变化

它可以工作,但问题是,它不会保留乘以更多滑动发生时检查的数字。它回到原来的价值。

我在这里做错了什么?

HTML

<input class="checkbox" type="checkbox">0.10 
<input class="checkbox" type="checkbox">0.25 
<input class="checkbox" type="checkbox">0.5 
<input class="checkbox" type="checkbox">0.75 
<input class="checkbox" type="checkbox">1.00 

<div class="increasedRevenue"><input id="increasedRevenueValue" value="0"></div> 

jQuery的

$('input:checkbox').click(function() { 
    $(this).siblings('input:checkbox').removeAttr('checked'); 
}); 

    $("#slider").slider({ 
     min: 100000, 
     max: 5000000, 
     step: 100000, 
     slide: function(event, ui) { 
      $("#increasedRevenueValue").val(ui.value); 

       $('input:checkbox').click(function() { 

        if($(this).is(":first-child")) { 
         $("#increasedRevenueValue").val($("#slider").slider("value") * 10);      
        } 
      }); 

     } 
    }); 
+1

'#slider'元素在哪里?我怀疑它与'$(“#increaseRevenueValue”)。val(ui.value);'行有关系,因为你将它重置为存储在'ui'对象中的值。 – Gingi 2012-03-06 21:03:38

+0

你可能是对的。我应该为幻灯片功能编写一个if else语句.. – Sethen 2012-03-07 02:49:10

回答

0

这里有一些问题。

首先,您没有在您的复选框中设置的值。没有价值,你怎么能告诉滑块什么多使用。您仅使用第一个复选框的复选框位置,您使用的唯一值是10。

接下来,您的step永不改变。为了有一个乘数,这将需要改变,并绑定到任何一个盒子被检查。

接下来,您的复选框click处理程序不应位于幻灯片事件中。 slide正在为移动滑块的每个像素添加一个新的点击处理程序。

这里是您的代码的jsfiddle唯一不同的是步骤是使更容易看到更改。看看你可以做些什么来解决我提到的一些问题,然后更新小提琴并点击update按钮来保存一个新版本,当你尽可能地得到时

+0

感谢您的回复,让我一次解决您的提及:首先,我没有为我的复选框设置任何值,因为这是一个示例。其次,这个步骤是在滑动功能上设置的,这是你所指的?第三,click处理程序最初设置在幻灯片函数中,为ui.value编写变量。没有区别在哪里。创建的jsfiddle实际上和我一样。我只需要知道如何让它成倍增长并保持这种状态。 – Sethen 2012-03-07 02:39:40

+0

如果需要,我会尽力提供帮助...但我不打算为您写信。它确实在幻灯片中的clcik处理程序上有所作为......当您移动幻灯片时,会添加许多处理程序幻灯片回调会不断调用 – charlietfl 2012-03-07 02:42:56

+0

真的,我所要求的只是某种处理程序,我可能会丢失或某种这里我没有看到逻辑。我会自己想出来的,不要介意。 – Sethen 2012-03-07 02:47:26