jQuery UI Slider – 发布时从’slide’事件返回的值与’change’值不同

我有一个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)); }, slide: function(event, ui){ console.log($(this).slider('values', 0)+','+$(this).slider('values', 1)); } }); 

由于一些奇怪的原因,当释放滑块(mouseup)时,值会略微改变。 幻灯片事件返回的内容与更改事件的内容不同。 任何人都有任何想法可能导致这个以及如何解决它?

我将在更改事件的回调中进行非常激烈的操作(意味着我不能只使用sldie),但还需要显示滑块的值,所以我不能只使用一个或者其他。

这里有一个奇怪的行动: http : //jsfiddle.net/5W6Zh/

提前致谢

我们今晚遇到了这个问题(昨晚和过去几个月)。 我们修复它的方法是使用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)); } 

我分叉你的jsfiddle并让它工作: http : //jsfiddle.net/danhixon/9JdhU/1/

老实说,我不认为没有你的问题和jsfiddle我会找到解决方案 – 我一直将它与jquery-ui演示进行比较,直到我发现这种差异。

我找到了解决方案! 总是在幻灯片事件上执行此操作:

 $(this).slider('value', ui.value); 

你很高兴去

在幻灯片处理程序中使用ui.value以获得更准确的值。

你的最小值,最大值和步长值看起来有点奇怪,但我想你只是混淆了它们。

我发现滑块不能很好地工作,步数远小于1,所以我改为仅使用整数然后除以。 从那时起从未有任何问题。