2012-03-23 74 views
0

我正在使用jQuery UI创建具有相同选项(调查)的6个滑块。具有相同选项的多个滑块都在同一个功能中?

我想知道是否有办法将所有这些滑块组合成一个函数,但让它们单独可操作?

如果是的话,那会是这样的:

$('#slider').each(function() { 
    var $this = $(this).closest('#slider'); 

    $($this).slider(
    { 
     value: 100, 
     min: 0, 
     max: 100, 
     step: 25, 
     slide: function (event, ui) { 
      $('#amount').val('$' + ui.value); 
     } 
    }); 
    $('#amount').val($('#slider').slider("value")); 

我环顾四周,看看我能找到一些相关的问题,但我还是解决不了。现在,只有6个滑块中的第一个可见。

+1

尝试将#slider id改为改为类。 – 2012-03-23 15:25:08

+0

你知道如果你喜欢这样的话,他们会有相同的回调。你确定吗? – 2012-03-23 15:26:55

+0

@SimonEdström是的,这是我对他们个人的担忧之一。当我将他们全部改为一个班级时,其中一个滑块的价值反映了其他人的价值。不是必需的。 – 2012-03-23 15:51:15

回答

1

不知道是什么问题。这jsFiddle example显示它只是一个基本的设置。移动任何滑块都会在输入字段中显示该滑块的值。

jQuery的

$('.slider').slider({ 
    slide: function(event, ui) { 
     $('input:eq('+ $(this).index() +')').val(ui.value); 
    } 
});​ 

HTML

<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<input /><br /> 
<input /><br /> 
<input /><br /> 
<input /><br /> 
<input /><br /> 
<input />​ 

编辑:更新的代码,以反映意见。

+0

这很好,但我想为每个唯一的滑块输入字段。你会碰巧知道如何做到这一点?你可以实现像$ this.closest('input')。val(ui.value); ? – 2012-03-23 18:04:45

+1

你的意思是这样的:http://jsfiddle.net/j08691/kK5FY/7/ – j08691 2012-03-23 18:19:16

+0

。哇,这比我预期的更容易。看起来像过度认为一个。谢谢j – 2012-03-23 18:27:40

相关问题