我的过滤器有范围滑块:
var start_value_emp = Math.floor(getUrlParameter("emp_from")) ? getUrlParameter("emp_from") : 0;
var end_value_emp = Math.floor(getUrlParameter("emp_to")) ? getUrlParameter("emp_to") : 1001;
jQuery(".slider_employees_main").slider({
range: true,
min: 0,
max: 1001,
step: 1,
values: [start_value_emp, end_value_emp],
slide: function (event, ui) {
var currEmpValueStartSlide = ui.values[0] > 0 ? ui.values[0] : '...';
var currEmpValueEndSlide = ui.values[1] < 1001 ? ui.values[1] : '...';
jQuery(".employee_select_info_main_from").html(currEmpValueStartSlide);
jQuery(".employee_select_info_main_to").html(currEmpValueEndSlide);
jQuery(".emp_from_main").val(ui.values[0]);
jQuery(".emp_to_main").val(ui.values[1]);
$(".slider_employees_main").slider("values", ui.values);
}
});
我已将滑块步长设置为1,但是当我滑动滑块时,步长为3,4或5但不应该是1,可能是由于大规模(0 - 1001)?任何想法如何设置步骤坚持1?
答案 0 :(得分:0)
我认为问题出在这里:
var currEmpValueStartSlide = ui.values[0] > 0 ? ui.values[0] : '...';
var currEmpValueEndSlide = ui.values[1] < 1001 ? ui.values[1] : '...';
由于javascripts pass by reference
分配变量的样式,jQuery(".employee_select_info_main_from")
和jQuery(".employee_select_info_main_to")
与ui.values[0]
和ui.values[1]
粘在一起,这使得ui.value[0]
相等当jQuery(".employee_select_info_main_from").html()
等于...
时为3。尽量避免这样的引用:
function copy( value ) {
return JSON.parse( JSON.stringify( value ) );
}
var currEmpValueStartSlide = ui.values[0] > 0 ? copy( ui.values[0] ) : '...';
var currEmpValueEndSlide = ui.values[1] < 1001 ? copy( ui.values[1] ) : '...';