我正在尝试对正在运行的jQuery UI Slider进行一些小改动,以便第一个滑块的第一个值向用户显示“All”而不是“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);
}
}
});
答案 0 :(得分:0)
这是我到目前为止所拥有的。看来你混淆了div。没有看到你的HTML,有点难以回答。无论如何,请尝试下面的代码,替换您当前的代码。
希望这有帮助
$("#peopleSlider").slider({
min: 0,
max: 10,
value: 0,
animate: true,
slide: function(event, ui)
{
var slidervalue = $("#peopleSlider").slider("value");//div of actual slider
if(slidervalue < 1)
{
$("#people").text("All");//div of text that is being displayed
}else{
$("#people").text(slidervalue);//div of text that is being displayed
}
}
});