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

wyq*_*syq 9 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));
    },
    slide: function(event, ui){
        console.log($(this).slider('values', 0)+','+$(this).slider('values', 1));
    }
});
Run Code Online (Sandbox Code Playgroud)

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

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

这是一个动作中这个奇怪的小提琴:http://jsfiddle.net/5W6Zh/

提前致谢

Dan*_*xon 13

我们今晚遇到了这个问题(昨晚和过去几个月).我们修复它的方法是使用ui.value和ui.values [0]而不是$("#slider").slider('values',0).

用这个:

change: function(event, ui) {
  $('.values').text(ui.values[0] + ',' + ui.values[1]);
}
Run Code Online (Sandbox Code Playgroud)

代替:

change: function(event, ui) {
  $('.values').text($(this).slider('values', 0) + ',' + $(this).slider('values', 1));
}
Run Code Online (Sandbox Code Playgroud)

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

老实说,我不认为没有你的问题和jsfiddle我会找到解决方案 - 我一直将它与jquery-ui演示进行比较,直到找到这个区别.


小智 13

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

$(this).slider('value', ui.value);
Run Code Online (Sandbox Code Playgroud)

你很高兴去

  • 完善!我今天一直在我的桌子上敲我的头因为这...我知道它晚了一年,但是@nipponese,你得到`[object object]`因为它是一个范围滑块,试试:`$(this).slider ('values',ui.values [0]);` (2认同)