修复滞后的jQuery UI Slider更新值

时间:2013-05-16 16:46:35

标签: jquery jquery-ui slider uislider

http://jsfiddle.net/emcniece/7Zj7M/2/

我无法弄清楚为什么滑块slide: function()似乎只是更新到之前的位置。滑块和标签从正确的位置(1和3)开始,但它们不会在第一次移动时更新标签...然后对于之后的每次移动,它们都会返回先前的位置值。例如:

  1. 向右移动最小滑动手柄(值1) - 标签不更新
  2. 将最小滑动手柄(现在应为值2)移动到左侧 - 标签更新为“2”,即使手柄位置应为“1”
  3. 向左移动最小滑动手柄,然后再向右移动。滑动手柄现在处于“1”位置,但标签值为0
  4. 我试图效仿http://jqueryui.com/slider/#range的例子 - 我做错了什么?

1 个答案:

答案 0 :(得分:1)

当'slide'事件发生时,句柄的值尚未更改。您始终记录每个句柄的当前值,而不是“刚刚移动的滑块到”值。

根据docsui.value包含如果您不取消幻灯片事件,句柄将具有的值。 ui.values是一个包含两个句柄值的数组(具有相同的警告)。所以,试试这个:

slide: function(e, u){
    $(this).parent().children('.label-min').text(u.values[0]);
    $(this).parent().children('.label-max').text(u.values[1]);
},