2011-03-23 77 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 
     }); 
    } 
});