L'animation poignée du curseur lors de la modification de l'INTERFACE utilisateur de jQuery curseur de la valeur de l'option?

Je suis à l'aide de l'INTERFACE utilisateur de jQuery (1.8) widget de curseur pour permettre à l'utilisateur de glisser/faire défiler une série d'icônes horizontale. Parfois, j'ai envie de déplacer le curseur par programmation et de la bonne façon de le faire est par la modification de l'option "valeur", comme ceci:

$("#content-slider").slider("option", "value", 37);

Le mouvement de la poignée du curseur est instantanée. J'aimerais que la motion soit animée. Cela peut être fait à un niveau inférieur, par l'animation de la "gauche" propriété CSS de la poignée, comme ceci:

$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450);

...mais si je fais cela, je viens de mettre la propriété à gauche du CSS pour la poignée. La valeur réelle du curseur n'est pas affectée. Alors j'ai pensé à l'ajout d'un rappel à la fin de l'animation dont la valeur est définie, quelque chose comme ceci:

$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450, function() {
    //Callback - set the new slider value
    $("#content-slider").slider("option", "value", position);
});

Quand j'ai essayer le code ci-dessus (avec le rappel), je reçois un jQuery erreur sur trop de récursivité, donc je pense que ce n'est pas une bonne façon d'accomplir ce que je veux (laid code).

Est-il une meilleure façon d'animer la poignée du curseur lorsque la valeur du curseur est modifié par programmation?

Merci d'avance!
/Thomas Kahn

OriginalL'auteur tkahn | 2010-11-08