这里发生的是,该onUpdate
事件从 dom 中销毁/删除整个滑块,并使用新值(更新的值)创建一个新滑块。我假设,您正在从某种输入机制中捕获新值,例如,用户在输入字段中输入价格并按下提交,然后您使用它来更新滑块。
现在有几种方法可以实现您想要的。一,编辑插件js文件本身,但这是很多工作,我们没有得到他们提供的免费cdn。二、用旧值更新滑块,然后用js手动改变滑块定位。第三,忘记onUpdate
事件并创建自己的CustomeUpdate
事件。所以...
$("#input").click(function(){
//$("#ion-slider").update(); Don't do this!!!
$("#ion-slider").trigger("customUpdate"); //Do this instead
})
$("#input").on( "customUpdate", function(){
var calib = "someNumericInputWidthRatio"; //put a value like 34
var newWidth = calib*$("input").value();
$("irs-bar.irs-bar--single").width(newWidth); //this will transition smoothly if you have transitions in css
$(".irs-handle.single").left(newWidth+15); // 15 is half width of the
draggable circle
})
根据需要将“px”添加到数字宽度,因为我有点糟糕。我的意思是用 jquerish 伪代码来理解这个想法。