Я использую виджет-слайдер jQuery UI (1.8), чтобы позволить пользователю перемещать / прокручивать серию иконок по горизонтали.Иногда я хочу перемещать ползунок программно, и правильный способ сделать это - изменить параметр «значение», например:
$("#content-slider").slider("option", "value", 37);
Движение ручки ползунка происходит мгновенно.Я хотел бы, чтобы движение было анимированным.Это можно сделать на более низком уровне, анимируя «левое» CSS-свойство дескриптора, например:
$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450);
... но если я сделаю это, я просто установлю левое свойствоCSS для ручки.На фактическое значение слайдера это не влияет.Так что я подумал о добавлении обратного вызова в конце анимации, где установлено значение, что-то вроде этого:
$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450, function() {
// Callback - set the new slider value
$("#content-slider").slider("option", "value", position);
});
Когда я пытаюсь код выше (с обратным вызовом), я получаю ошибку jQuery о слишкоммного рекурсии, поэтому я думаю, что это не очень хороший способ выполнить то, что я хочу (некрасивый код).
Есть ли лучший способ анимировать дескриптор ползунка, когда значение ползунка изменяетсяпрограммно?
Заранее спасибо!/ Томас Кан