【问题标题】:jQuery UI Slider - Value returned from 'slide' event on release is different from 'change' valuejQuery UI Slider - 发布时从“幻灯片”事件返回的值与“更改”值不同
【发布时间】:2012-02-25 15:05:24
【问题描述】:

我有一个 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));
    }
});

出于某种奇怪的原因,当释放滑块(鼠标上移)时,该值与原来的值略有不同。幻灯片事件返回的内容与更改事件不同。任何人有任何想法可能导致此问题以及我如何解决它?

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

下面是这个奇怪的操作:http://jsfiddle.net/5W6Zh/

提前致谢

【问题讨论】:

  • 看起来当你抓住/滑动滑块时,它从按钮的中心获取值,但是当你放手时,它从左边缘获取值。另外,只是点击轨道永远不会产生这种效果,所以我倾向于认为按钮后面的代码使用不同的参考点进行拖动/释放

标签: javascript jquery jquery-ui slider jquery-ui-slider


【解决方案1】:

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

我发现滑块在步数远小于 1 的情况下效果不佳,因此我改为仅使用整数并在之后进行除法。从那以后再也没有任何问题。

【讨论】:

  • 我已更改为上述值,但不幸的是,我仍然感到这种怪异。 ://
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我们今晚(昨晚和过去几个月)遇到了这个问题。我们修复它的方法是使用 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 演示进行比较,直到发现这种差异。

    【讨论】:

      【解决方案4】:

      我找到了解决办法!总是在幻灯片事件中这样做:

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

      你很高兴

      【讨论】:

      • 就是这样!我爱你,伙计!
      • 我的滑块只返回[object Object]
      • 完美!因为这个,我今天一直在我的桌子上敲我的头。我知道它晚了一年,但是@nipponese,你得到[object object],因为它是一个范围滑块,试试:$(this).slider('values', ui.values[0]);
      • 哇,你真是个天才 :) 谢谢!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2021-04-16
      • 2014-02-07
      • 2018-02-08
      相关资源
      最近更新 更多