【发布时间】:2011-05-06 14:27:30
【问题描述】:
我正在使用 jQuery UI (1.8) 滑块小部件来使用户能够水平滑动/滚动一系列图标。有时我想以编程方式移动滑块,正确的方法是更改选项“值”,如下所示:
$("#content-slider").slider("option", "value", 37);
滑块手柄的运动是即时的。我希望动作是动画的。这可以通过动画句柄的“左”CSS属性在较低级别上完成,如下所示:
$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450);
...但是如果我这样做,我只需将 CSS 的 left 属性设置为句柄。滑块的实际值不受影响。所以我想在设置值的动画末尾添加一个回调,如下所示:
$(".ui-slider-handle").animate({ left: position, easing: 'swing' }, 450, function() {
// Callback - set the new slider value
$("#content-slider").slider("option", "value", position);
});
当我尝试上面的代码(带有回调)时,我收到一个关于递归过多的 jQuery 错误,所以我认为这不是完成我想要的事情的好方法(丑陋的代码)。
当滑块的值以编程方式更改时,是否有更好的方法来为滑块手柄设置动画?
提前致谢! /托马斯·卡恩
【问题讨论】:
标签: jquery jquery-ui slider jquery-animate