!!! "проблема решена в разделе редактирования"
Я пытаюсь многократно использовать один и тот же плагин jQuery на одной странице.
Плагин jQuery: Ползунок диапазона
Сначала я установил пустой глобальный массив для добавления вызова плагина:
var sliders = [];
Затем плагин множественных вызовов, подобный этому:
var slider1 = new rSlider({
target: "#slider1",
values: set_max_value_to_slider(),
range: true,
labels: false,
scale: false,
tooltip: false,
onChange: function(values){setrangeslidervaluestodiv("1");}
});
Затем я пишу вызываемый плагин в массив:
window.sliders["slider1"] = slider1;
Конечно, я устанавливаю разные имена для каждого вызова плагина.
Я использую окно, потому что используется глобальный массив.
У каждого ползунка есть два входа для установки диапазона от ползунка.
Измените значения в ползунке, установите эти значения для входов, а измените значения во входах, установите для этих значений ползунок.
Установить входные события:
$('#filters_form').find('input[data-slider-destination]').focusout(function(){
set_input_values_to_slider($(this).attr('data-slider-destination'));
});
Функция для установки значений от входа к ползунку:
function set_input_values_to_slider(att) {
var v1 = $("#p_for_slider"+att+"value1").val();
var v2 = $("#p_for_slider"+att+"value2").val();
window.sliders['slider'+att].onChange(function(){});
window.sliders['slider'+att].setValues(v1, v2);
window.sliders['slider'+att].onChange(function(values){
setrangeslidervaluestodiv(att);
});}
onChange
и setValues
являются методами плагина jQuery.
Но есть проблема с вызовом этого метода, он не работает.
Когда я пытаюсь показать объект в консоли, это видно правильно:
console.log(JSON.parse(JSON.stringify(window.sliders['slider'+att])));
Что я пытаюсь вызвать методами:
Очистить при изменении:
window.sliders["slider"+att].unbind("change");
window.sliders["slider"+att].off("change");
window.sliders["slider"+att]["onChange"] = "";
Установить значения:
window.sliders["slider"+att]["set"] = "["+v1+","+v2+"]";
$('#slider'+att).rSlider({
set:[v1,v2],
onChange: function(values){setrangeslidervaluestodiv(att);}
});
Проблема в том, что изменение входных значений не устанавливает значение ползунка диапазона, методы объекта rSlider не вызывают.
Есть ли варианты вызова методов для массива вызываемых объектов?
Спасибо за любую помощь
EDIT:
Хорошо, я исправлю это. Функция setValues
требует целочисленных значений. Из ввода я получил строку, так что просто: sliders['slider'+att].setValues(parseInt(v1), parseInt(v2));
сделать это правильно.