2012-07-20 29 views
1

当我通过键盘箭头选择一个项目时,输入字段中的选择会按预期更改。但是,如果我随后将鼠标移出项目,则输入字段将恢复为用户输入的内容,从而失去以前通过键盘进行的选择。jQuery自动完成在鼠标上失去选择

jsfiddle example

documentation声称,我想要做到的是事实上的默认行为,但它似乎没有工作。

另一个参考提的是,行为似乎有所改变:http://forum.jquery.com/topic/autocomplete-s-menu-items-mouseover-behavior#14737000002991273

我目前使用jQuery的导轨2.0.2,其拉动jQuery的1.7.2。

回答

0

当我在你的小提琴中注释掉Javascript的最后一行时,预期的行为会再次开始工作。

我不完全确定为什么,但它看起来像你调用自动完成脚本两次,也许他们以某种方式干扰对方。 “

+0

我从前面的SO问题中分出了小提琴。确实,看起来第二个电话是不必要的。我删除了它,但它不能解决我的问题(OSX上的Chrome/Firefox)。 – 2012-07-20 23:41:50

+0

这里同样的问题 – Sentinel 2012-09-12 08:35:02

0

”在将焦点移动到某个项目(未选中)之前,ui.item引用焦点项目。焦点的默认操作是将焦点项目的值替换为文本字段的值,但只有焦点事件是由键盘交互触发的,取消这个事件可以防止更新值,但不会阻止菜单项被聚焦。“

文本居住区描述焦点事件。
如果你看看它说:The default action of focus is to replace the text field's value with the value of the focused item, though only if the focus event was triggered by a keyboard interaction.

所以,你可以看到这个demo显示选项获得焦点,但价值不会改变。

reference