我正在尝试对工作中的 jQuery UI 滑块进行小幅更改,以便第一个滑块的第一个值向用户显示“全部”而不是“0”。
我尝试根据这篇文章Jquery ui slider with string values 中的示例更改滑块?但是我目前无法获得有效的解决方案。
我的代码目前看起来像这样:
<script>
$(function() {
$("#peopleSlider").slider({
min: 0,
max: 10,
value: 0,
animate: true,
slide: function(event, ui) {
$( "#people" ).val( ui.value );
var top_value_str = ui.value>=99 ? ui.value+'+' : ui.value;
$("#peopleSlider .tab-note:first").text(top_value_str);
}
});
$("#yearSlider").slider({
min: 2013,
max: 2015,
value: 2013,
animate: true,
slide: function(event, ui) {
$( "#year" ).val( ui.value );
var top_year_str = ui.value>=2099 ? ui.value+'+' : ui.value;
$("#yearSlider .tab-note:first").text(top_year_str);
}
});
$('.ui-slider-horizontal .ui-slider-handle').append('<span class="tab-note"></span>').mousedown(function(e) { e.preventDefault(); });
$( "#people" ).val( $( "#peopleSlider" ).slider( "value" ) );
$( "#year" ).val( $( "#yearSlider" ).slider( "value" ) );
// Set default values - for sale
var for_sale_init_bed_slide_val = $("#peopleSlider").slider("value");
var for_sale_top_value_str = for_sale_init_bed_slide_val>=99 ? for_sale_init_bed_slide_val+'+' : for_sale_init_bed_slide_val;
$("#peopleSlider .tab-note:first").text(for_sale_top_value_str);
var for_sale_init_year_slide_val = $("#yearSlider").slider("value");
var for_sale_top_year_str = for_sale_init_year_slide_val>=2099 ? for_sale_init_year_slide_val+'+' : for_sale_init_year_slide_val;
$("#yearSlider .tab-note:first").text(for_sale_top_year_str);
});
我想将#peopleSlider 的最小值更改为显示“全部”而不是“0”。我添加了 var 步骤:
var steps = [
"All",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10"
];
但我不完全确定如何/在哪里将“步骤”功能添加到滑块脚本中?
--
工作解决方案
$("#peopleSlider").slider({
min: 0,
max: 10,
value: 0,
animate: true,
slide: function(event, ui) {
$( "#people" ).val( ui.value );
var top_value_str = ui.value >= 99 ? ui.value +'+' : ui.value;
if(top_value_str < 1) {
//div of text that is being displayed
$("#peopleSlider .tab-note").text("Any");
} else {
//div of text that is being displayed
$("#peopleSlider .tab-note").text(top_value_str);
}
}
});