2011-03-23 79 views
0

我使用這個jquery slider,這個滑塊有3個實例,我如何同步它們?如何同步幾個jQuery滑塊?

JS:

$(".slider").slider(); 

HTML:

<div class="slider"></div> 
... 
<div class="slider"></div> 
+0

你可以發佈代碼嗎?我現在所能說的就是設置jquery事件偵聽器,然後在更改其他2個值時更新它們的值。 – Jared 2011-03-23 13:39:47

+0

@Jared,我已經更新了代碼。 – 2011-03-23 14:52:26

回答

2

分配不同的ID給每個:

<div class="slider" id="slider1"></div> 
<div class="slider" id="slider2"></div> 
<div class="slider" id="slider3"></div> 

然後在你的滑塊的初始化:

$("#slider1").slider({ 
    slide: function(event, ui) { 
     $("#slider2").slider("value", ui.value); 
     $("#slider3").slider("value", ui.value); 
    } 
}); 

$("#slider2").slider({ 
    slide: function(event, ui) { 
     $("#slider1").slider("value", ui.value); 
     $("#slider3").slider("value", ui.value); 
    } 
}); 

$("#slider3").slider({ 
    slide: function(event, ui) { 
     $("#slider1").slider("value", ui.value); 
     $("#slider2").slider("value", ui.value); 
    } 
}); 
+0

我假設你可以概括並使用.slider選擇器,並且只有1個初始化,但是你可能遇到很多問題。此答案基於以下示例中的API指南:http://jqueryui.com/demos/slider/#option-value – Jared 2011-03-23 15:27:16

0

您可以同步共享同一類別中的幾種滑塊使用過。每():

$('.slider.sync').slider({ 
    min:0, 
    max:100, 
    slide: function(event,ui){ 
     $('.slider.sync').each(function(){ 
      $(this).slider('value', ui.value);  
      $(this).siblings('span.value').text(ui.value); // print value to span.value 
     }); 
    } 
}); 

,如果你使用的範圍選項,它也可以,只是一定要使用「值」方法來代替的'價值':

$('.slider.sync').slider({ 
    range:true, 
    min:0, 
    max:100, 
    values:[0,100], 
    slide: function(event,ui){ 
     $('.slider.sync').each(function(){ 
      $(this).slider('values', [ ui.values[0],ui.values[1] ]); 
      $(this).siblings('span.min').text(ui.values[0]); // print min value to span.min 
      $(this).siblings('span.max').text(ui.values[1]); // print max value to span.max 
     }); 
    } 
});