jQuery UI - Slider& Spinner没有正确地互相更新

时间:2014-03-13 17:18:22

标签: jquery jquery-ui binding jquery-ui-slider jquery-ui-spinner

我试图将jQuery的Slider绑定到jQuery的Spinner,并让它们互相更新以及页面上的其他一些内容(进度条和h1中的显示输出)

然而,当我尝试更改Slider时出现问题。由于它们彼此都在相互改变,因此移动Slider会更新Spinner,Spinner会更新Slider但会出现一些奇怪的行为:css样式应用中的填充宽度会有一种延迟。

我可以通过评论来解决延迟

        // Spinner speak to range slider fill
        // $( "#rangeFill" ).css( "width", ui.value + "%");

但是当用户更改微调器值时,只有滑块的手柄会移动,但不会移动。

小提琴: http://jsfiddle.net/PaulOD/2T9RU/

最感谢的任何帮助,谢谢,保罗

1 个答案:

答案 0 :(得分:1)

保罗,我相信你的问题出现了,因为你在滑动时设定旋转器的价值。如果您在滑动时移动得太快slide事件无法与您保持同步,那么您的spinner值会落后,这会导致您的问题。

if (ui.value > last) {
    $("#spinners").spinner("stepUp", 1);
}
if (ui.value < last) {
    $("#spinners").spinner("stepDown", 1);
}

所以更新您的微调器:

$("#spinners").spinner("value", ui.value);

现在您的微调器将始终跟上最新的滑块值。

FIDDLE