2013-05-16 2 views
0

http://jsfiddle.net/emcniece/7Zj7M/2/Fix отстающего обновления JQuery UI Slider значение

Я не могу понять, почему ползунок slide: function() кажется только обновить к предыдущей позиции. Ползунки и метки начинаются в правильных местах (1 и 3), но они не обновляют метки на первом ходу ... затем для каждого шага после этого они возвращают предыдущее значение местоположения. Например:

  1. Перемещение мин ручки слайд (значение 1) вправо - метки не обновлять
  2. Move мин слайд ручки (теперь должно быть значение 2) влево - обновления метки на «2» , хотя позиция ручки должна быть «1»
  3. Переместить указатель минимальной ползунки влево, затем вправо еще раз. Ручка слайда теперь находится в положении «1», но значение метки равно 0

Я попытался следовать примеру на http://jqueryui.com/slider/#range - Что я делаю неправильно?

ответ

1

Значения ручек еще не изменены, когда происходит событие «слайд». Вы всегда регистрируете текущие значения для каждого дескриптора, а не значения «just-move-the-slider-to».

В соответствии с docs, ui.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]); 
}, 
+0

Удивительный, спасибо ... мои глаза полностью потерялись в этом примере. – emc