У меня на сайте есть бегунок диапазона для минимальных и максимальных ценовых диапазонов.По обе стороны от ползунка есть два поля ввода текста.Я создал функцию обратного вызова с помощью ползунка, которая регулирует значения текстовых полей на основе изменения значений в ползунке.
В то же время я также хотел бы настроить значения ползунка на основе изменений в значениях текстовых полей.Прямо сейчас событие изменения (также пробовавшего keyup), которое я связываю с текстовыми вводами, не изменяет значения (положение) двух стрелок диапазона.Что здесь не так?
$('.price_slider').slider({orientation:"horizontal",range:true, animate:200,min:0,max:10000, step:100,value:0,values:[{{min_rent}},{{max_rent}}], slide:function(event,ui){
$('input#lower_bound').val(ui.values[0]);
$('input#upper_bound').val(ui.values[1]);
}
});
$('input#lower_bound').change(function(){
$('.price_slider').slider("values",[$(this).val(),$('input#upper_bound').val()]);
});
$('input#upper_bound').change(function(){
$('.price_slider').slider("values",[$('input#lower_bound').val(),$(this).val()]);
});
РЕДАКТИРОВАТЬ -
Мэтт, я видел вашу ревизию.Просто любопытно, если ваша версия более эффективна, чем моя.Мой, кажется, работает, но я явно не эксперт:
$lower.add($upper).change(function () {
var lowEnd=parseInt($lower.val());
var highEnd=parseInt($upper.val());
if(highEnd>lowEnd){
$slider.slider('values', 0, parseInt($lower.val(), 10));
$slider.slider('values', 1, parseInt($upper.val(), 10));
}
else{
$slider.slider('values', 0, parseInt($lower.val(), 10));
$slider.slider('values', 1, parseInt($lower.val(), 10));
$upper.val([$lower.val()]);
}
});