!!! “编辑部分中的问题已解决”
我尝试在一页中多次使用相同的jQuery插件。 jQuery插件:Range slider
首先,我设置一个空的全局数组来添加插件调用:
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;
当然,我为每个插件调用设置了不同的名称。 我使用window,因为使用了全局数组。
每个滑块都有两个输入,可以从滑块设置它们的范围。 滑块中的更改值将此值设置为输入,而输入中的更改值将此输入值设置为滑块。 设置输入事件:
$('#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])));
我尝试调用的方法: 清除onChange:
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对象的方法不调用。
是否有一些选项可以调用被调用对象数组上的方法?
感谢您的帮助
好的,我修理那个。函数setValues
需要为整数。从输入中我得到了字符串,所以很简单:sliders['slider'+att].setValues(parseInt(v1), parseInt(v2));
可以正常工作。