Jquery ui JQuery UI自动完成可滚动的内容在鼠标移动时向上滚动

Jquery ui JQuery UI自动完成可滚动的内容在鼠标移动时向上滚动,jquery-ui,Jquery Ui,我最近实现了jQueryUIAutoCompleteComboBox,一切正常,而不是我发现的一个无法找到解决方案的bug。我不能在这里发布我的代码,因为它是公司代码,但我在jquery ui演示页面上看到了这个问题: 现在,如果您在输入字段中键入“a”,您将得到一个带有自动完成结果的面板,这是一个元素,内部有元素,因为它有一个设置的高度,所以将有一个完美的垂直滚动条。 现在将鼠标放在显示结果的面板内,使用鼠标滚轮向下滚动列表,然后将鼠标指针向上移动回到输入字段。 您将看到列表开始向上滚动。

我最近实现了jQueryUIAutoCompleteComboBox,一切正常,而不是我发现的一个无法找到解决方案的bug。我不能在这里发布我的代码,因为它是公司代码,但我在jquery ui演示页面上看到了这个问题:

现在,如果您在输入字段中键入“a”,您将得到一个带有自动完成结果的面板,这是一个
    元素,内部有
  • 元素,因为它有一个设置的高度,所以将有一个完美的垂直滚动条。 现在将鼠标放在显示结果的面板内,使用鼠标滚轮向下滚动列表,然后将鼠标指针向上移动回到输入字段。 您将看到列表开始向上滚动。 当您多次上下移动鼠标指针时,列表将继续上升,这对于我的实现来说是一个真正的问题

    我创建了一个带有设置高度和overflow-y属性的常规
    列表来模拟可滚动的ui面板,但我没有这个问题

    这是一个关于这个问题的.gif文件,每个人都可以在他们的页面上进行测试

    更新 !!!解决了 在玩了很多次之后,我发现问题出在jquery试图将顶级元素集中在焦点上。出于某种原因,它决定必须处于焦点的元素实际上是列表中的前一个元素,而该元素甚至不在视口中。因此,关注这个元素会导致菜单“跳转”到上一个元素,从而导致向上滚动。 通过将
  • 元素之间的边距更改为2px(我尝试使用1px,但这还不够),我成功地消除了这个问题

    在实际的Jquery演示页面上,我必须增加到5px才能真正工作

    您可以更改
    .ui menu.ui菜单项
    选择器中jqyery-ui.css中的
    边距
    值。 这在元素之间创建了足够的空间,jquery不会“混淆”应该关注哪个元素


    我想你把版本放反了?它在1.11.1中按预期工作,但在1.12.1中却没有按预期工作?我认为只有当菜单选项的一部分可见时,鼠标才能“越过”它,使其成为焦点。然后焦点会使特定元素被完全查看。你可以用CSS来纠正这一点。降低到
    最大高度:96px.Hi Twisty,所以如果我使用1.11.2版,一切都可以,但是如果切换到1.12.1版,问题就出现了。我还看到了“焦点”模式。但正常的行为(如1.11.2所示)是,如果顶部元素部分可见,则只会将其聚焦并使其完全可见,但不会再向上移动。而不是在1.12.1中,它不断上升。