多个jquery滑块

我正在努力使用多个jQuery滑块 –

在这种情况下, 如果一个滑块增加,则其他滑块相应减小 。 滑块正在动态创建。 我尝试过很多例子,但没有运气。

我将解释这个场景,如果有3个滑块,每个设置为500,1000,1500,如果我将第一个滑块的值增加到100(500 + 100)那么100应该从其他两个(每个50个)减少。

我检查了http://jsfiddle.net/jenishkottaram/sNfBM/14/和http://jsfiddle.net/Y5ZLL/400/,但在我的情况下没有帮助。

任何帮助都应该非常感谢。

谢谢

//滑块从这里开始

drawSlider: function(elementId, sliderMax, sliderVal, rate) { $("#" + elementId).each(function() { $( this ).empty().slider({ range: "max", min: 0, max: sliderMax, value: sliderVal, step: 100, slide: function(event, ui) { // Update display to current value $(this).siblings().text(ui.value); // Get current total var total = 0; $("#" + elementId).not(this).each(function() { total += $(this).slider("option", "value"); }); // Need to do this because apparently jQ UI // does not update value until this event completes total += ui.value; var max = sliderMax - total; // Update each slider $("#" + elementId).not(this).each(function() { var t = $(this), value = t.slider("option", "value"); t.slider("option", "max", max + value) .siblings().text(value + '/' + (max + value)); t.slider('value', value); }); }});});}, 

我正在使用for循环来动态显示滑块

  for (i = 0; i < aBal.length; i++) { for (j = 0; j < balanceRange.length; j++) { if (aBal[i] == balanceRange[j]) { if (aCur[j] == activeCurrency) { $('#account-wrapper-holder').append('' ); { _this.drawSlider('slider-' + aName[j] + aNum[j] + '', sumOfCurrencyBalances, balanceRange[j], accountRate); 

 $("#" + elementId) 

这意味着“给我一组只有一个元素的元素(ID为elementId的元素 )”。

 $("#" + elementId).not(this) 

这意味着“给我同一组(一个元素),然后给我所有不是这个元素的元素(即每个元素除了实际存在的那个元素)。

所以换句话说,它只是一个空集,这解释了为什么你的警报显示你没有迭代它…它没有任何东西可以迭代:-)

我想你可能想做的是在你的所有滑块上添加一些类(例如“滑块”)(实际上我认为jQuery UI可能会为你做这个,所以你可以使用它们添加的任何类)。 这样你可以这样做:

 $("." + thatClass).not(this) 

我认为这更像你想要的。

希望有所帮助。