2012-04-07 188 views
1

我尝试设置3个jQuery UI滑块互连,3个滑块的总和必须始终保持在100,所以当我更改一个滑块的值时,其他滑块必须更新。Jquery多个滑块互连

在为例,如果一个滑块有值40,我提出这个值50,另外两个滑块不得不减少5

谁能帮助我吗? 感谢

回答

0

高值的概率是在任何情况下50 ...这样设置所有三个滑块至0至50 ...和它们作为类=‘选择无效’

$(".selector").slide(function(event, ui){ 

    $(event.srcElement).removeClass('inactive'); 

    var valuechange = 0; 

    $('.inactive').each(function(value, item){ 
     // get sum of other two sliders 
     valuechange += $(item).slider("option", "value"); 
    }); 

    // subtract sum(othertwo) + this value with 100 to get current changed value 
    valuechange = (valuechange + (ui.values[0])) - 100; 

    $('.inactive').each(function(value, item){ 
      // add other sliders values to changedvalue/2 
      $(item).slider("option", "value", $(item).slider("option", "value") + ((valuechange/2) * -1)); 
    }); 

    $(event.srcElement).toggleClass('inactive'); 
}); 

类希望这解决了你的问题

+0

感谢您的帮助, 这条线帮了我很多:valuechange =(valuechange +(ui.values [0])) - 100; http://jsfiddle.net/rRtAq/6767/ – pol 2012-04-14 18:27:23

+0

我已经更新您的代码了...现在运行它... http://jsfiddle.net/rRtAq/6769/ ....只替换了这一行$(item).slider('value',itemvalue +((valuechange/2)* -1)); ...将滑块范围更改为0到50 ...因为在任何情况下最大值的概率为50 – Dasarp 2012-04-14 18:44:10

+0

我不明白为什么您希望50为高概率,如果其他两个滑块的值为0那么滑块的值必须为100 – pol 2012-04-14 19:06:25