Javascript 为什么用户必须单击两次才能启用jQueryUI滑块的键盘控制

Javascript 为什么用户必须单击两次才能启用jQueryUI滑块的键盘控制,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我在这里实现了一个自定义滑块: 它的工作方式是,滑块控制柄最初隐藏,当用户单击滑块上的任何位置时,控制柄将显示,方法是使用: $("a.ui-slider-handle").hide(); $("a.ui-slider-handle").show(); 但是,用户必须在滑块上单击至少两次,然后才能使用键盘(即左或右键)移动手柄 有人知道导致这种行为的原因吗?尝试添加: $("a.ui-slider-handle").focus(); 之后 可能您只需要元素来获得焦点。如果滑块具有焦点,则只能

我在这里实现了一个自定义滑块:

它的工作方式是,滑块控制柄最初隐藏,当用户单击滑块上的任何位置时,控制柄将显示,方法是使用:

$("a.ui-slider-handle").hide();
$("a.ui-slider-handle").show();
但是,用户必须在滑块上单击至少两次,然后才能使用键盘(即
键)移动手柄

有人知道导致这种行为的原因吗?

尝试添加:

$("a.ui-slider-handle").focus();
之后


可能您只需要元素来获得焦点。

如果滑块具有焦点,则只能使用箭头键移动滑块。简单添加:

$("a.ui-slider-handle").show().focus();

请注意,如果滑块失去焦点,箭头键将再次禁用。如果您希望他们响应,则必须将
.keypress
或类似内容绑定到
文档中,但这可能不是最好的主意。

使用JSFIDLE时,请将您的JS放入JavaScript框中,因为这样可以更容易地调试感谢您的回答,这很有效。但是,第一次单击没有将焦点注册到滑块控制柄,而第二次单击则注册到滑块控制柄,这有什么原因吗?当您单击元素时,由于它是隐藏的,因此无法获得焦点。一旦显示你必须设置焦点。我不确定。。我认为这可能与浏览器有关(不关注隐藏的元素)。当您在滑块中单击时,jQuery可能会以编程方式为其提供焦点。
$("a.ui-slider-handle").show().focus();