如何在jQuery UI自动完成中手动聚焦/突出显示项目?

时间:2013-07-04 12:17:58

标签: javascript jquery jquery-ui jquery-ui-autocomplete

我正在使用jQuery UI 1.10.2,我想手动突出显示/聚焦列表中的项目。基本上,我正在尝试实现类似HTML select的行为:

  • 应始终显示来源的所有结果
  • 在inout字段中输入内容时,应突出显示最佳匹配项,不应过滤列表
  • 当用户选择项目时,建议列表将被关闭。当用户关注输入时,应打开建议列表,并突出显示所选值。

我可以在输入焦点上成功打开建议列表而不是过滤结果列表,但是在打开自动完成建议列表并输入时,我有点难以弄清楚如何手动突出显示/聚焦所选元素我能够找到匹配的项目,但不知道如何激活"它

我试过这个:

open: function() {
  // Find the selected menu item...
  var $menuEl = ...
  $(this).data("uiAutocomplete").menu.focus(new $.Event("mouseover"), $menuEl );
}

但它似乎不起作用。

1 个答案:

答案 0 :(得分:1)

似乎传递null而不是事件使其有效:

$(this).data("uiAutocomplete").menu.focus(null, $menuEl );

FWIW:我创建了Event,因为旧版本的jQuery UI Menu需要它。从那时起,UI菜单似乎发生了很大的变化。