我意识到之前已经问过这个问题,我在这里可以找到最清晰的解决方案:
Focus on a jQuery autocomplete result (not necessarily the first)
我需要您可以在所选答案中查看的第一个解决方案:我的项目必须在客户端选择,并且该解决方案看起来很理想。我的目标主要是让焦点从菜单中的项目开始,该菜单已经在输入文本框中(触发了ui菜单的打开),如果有的话。不要选择项目,而只关注它。我也无法使用“搜索”功能,因为这会消除焦点选项周围的其他选项。
可悲的是,它失败了: var menu = $(this).data(“uiAutocomplete”)。菜单。 Firebug告诉我:TypeError:$(...)。data(...)未定义。
这是我的完整开放事件函数回调声明作为参考。
open: function (event, ui) {
var termTitle = $(event.target).val();
var menu = $(this).data("uiAutocomplete").menu
, i = 0
, $items = $('li', menu.element)
, item
, text
//, startsWith = new RegExp("^" + this.value, "i");
, startsWith = new RegExp("^" + termTitle, "i");
for (; i < $items.length && !item; i++) {
text = $items.eq(i).text();
if (startsWith.test(text)) {
item = $items.eq(i);
}
}
if (item) {
menu.focus(null, item);
}
}
如您所见,它主要来自上面给出的链接。我不知道问题可能是什么。如果您有任何想法 pleeese halp!
非常感谢, 利
更新:我正在使用JQuery 1.8.3。这可能是相关的吗?