Javascript jQuery UI Slider—从';幻灯片';发布时的事件不同于';改变';价值
我有一个jQuery UI滑块:Javascript jQuery UI Slider—从';幻灯片';发布时的事件不同于';改变';价值,javascript,jquery,jquery-ui,slider,jquery-ui-slider,Javascript,Jquery,Jquery Ui,Slider,Jquery Ui Slider,我有一个jQuery UI滑块: $('div.slider').slider({ range: true, step: 250, min: 1000, max: 500000, values: [1000,500000], change: function(event, ui){ console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
$('div.slider').slider({
range: true,
step: 250,
min: 1000,
max: 500000,
values: [1000,500000],
change: function(event, ui){
console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
},
slide: function(event, ui){
console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
}
});
出于某种奇怪的原因,当释放滑块(mouseup)时,该值与原来的值略有变化。幻灯片事件返回的内容与更改事件不同。有没有人知道是什么原因造成的,我如何解决
我将在更改事件的回调中进行一个非常密集的操作(这意味着我不能只使用sldie),还需要实时显示滑块的值,所以我不能只使用其中一个
下面是一个在行动中的古怪行为:
提前感谢您的最小值、最大值和步长值看起来有点奇怪,但我想您只是把它们弄混了
我发现滑块在步长远小于1的情况下工作不太好,所以我改为只使用整数,然后再进行除法。从那以后就再也没有出现过任何问题。在幻灯片处理程序中使用ui.value来获得更准确的值。我们今晚(以及昨晚和过去几个月)遇到了这个问题。我们所做的修复是使用ui.value和ui.values[0]而不是$(“#slider”).slider('values',0) 使用以下命令:
change: function(event, ui) {
$('.values').text(ui.values[0] + ',' + ui.values[1]);
}
而不是:
change: function(event, ui) {
$('.values').text($(this).slider('values', 0) + ',' + $(this).slider('values', 1));
}
我用叉子叉了你的JSFIDLE,让它工作起来:
老实说,如果没有你的问题和JSFIDLE,我不认为我会找到解决方案——我一直将它与jquery ui演示进行比较,直到我发现了这一差异。我找到了解决方案!在幻灯片活动中始终执行此操作:
$(this).slider('value', ui.value);
你可以走了我已经改变了上面的值,不幸的是我仍然感到奇怪/看起来,当您抓取/滑动滑块时,它从按钮中心获取值,但当您松开时,它从左边缘获取值。而且,仅仅点击轨迹永远不会产生这种效果,所以我倾向于认为按钮后面的代码使用了不同的参考点进行拖动/释放,就是这样!我爱你,伙计!我的滑块只返回
[object object]
。太棒了!因为这个,我今天一直把头撞在桌子上。。我知道已经晚了一年,但是@nipponese,您得到的是[object object]
,因为它是一个范围滑块,请尝试:$(this.slider('values',ui.values[0])哇,你真是个天才:)谢谢!!