>问题:我必须根据结果的值在小下拉列表中着色。
解决方案:使用"open"事件挂钩循环访问选项并分配颜色。
问题:所以jQuery UI自动完成的文档说打开的事件钩子接收两个参数 - "ui"和"event"。问题是,"ui"只是一个空对象(有人为此提交了错误报告,出色的jQuery UI团队说这不是问题),而"event"只有输入框,而不是生成的下拉列表。此时,我可以从此处选择选项列表的唯一方法是执行以下操作:
$( event.target ).nextUntil("ul.ui-autocomplete").last().next()
这太恶心了。请告诉我有更好的方法吗?
PS:如果有人说"只需使用$('ul.ui-autocomplete')!"你显然从未做过比这更复杂的事情......这并不复杂。
官方文档很糟糕,但经过大量探索,我想通了:
$(event.target).data('autocomplete').menu.element
你在写插件吗?你可以使用 this.element