2013-02-04 39 views
6

我想嵌入我的滑块范围的最大值在html数据参数。我做了一些调试,并且尽管数据可以被访问,并且是一个数字,滑块将仍然使用的100从html数据属性设置jQuery的ui slider params

默认最大我的HTML:

<div class="slider" data-max="10"></div> 
<label for="slider_value">Slider Value:</label> 
<input type="text" id="slider_value" /> 

我的javascript:

$(document).ready(function() { 
    $("div.slider").slider({ 
     min: 0, 
     max: $(this).data("max"), 
     slide: function (event, ui) { 
      $("input#slider_value").val(ui.value); 
     } 
    }); 
}); 

见本fiddle

回答

6

slider()参数对象进行评价时,this是到的参考对象,而不是div.slider。你需要再次找到div.slider或保存一个对它的引用(demo):

$(document).ready(function() { 
    var div = $("div.slider"); 
    div.slider({ 
     min: 0, 
     max: div.data("max"), 
     slide: function (event, ui) { 
      $("input#slider_value").val(ui.value); 
     } 
    }); 
}); 
1

使用jQuery UI的create事件与option方法动态设置选项:

$(document).ready(function() { 
 
    $('div.slider').slider({ 
 
     min: 0, 
 
     create: function(event, ui) { 
 
      $(this).slider('option', 'max', $(this).data('max')); 
 
     }, 
 
     slide: function(event, ui) { 
 
      $("input#slider_value").val(ui.value); 
 
     } 
 
    }); 
 
});