取消突出显示自动完成中的第一个突出显示的项目

Jas*_*tti 2 primefaces jsf-2

这里我p:autoComplete在PrimeFaces 5.1中使用标签,但我无法从建议列表中删除第一个突出显示/选中的项目.我怎么能删除这个?

Hat*_*mam 6

既然你的"问题"来自这个特殊的line,

firstItem.addClass('ui-state-highlight');
Run Code Online (Sandbox Code Playgroud)

这里发生的是当建议准备好显示脚本突出显示列表的第一项时,所以在您的情况下,您只需"取消突出显示"该项目.

我创建了一个小函数,可以在你拥有的每个AutoComplete中执行此操作,您可以在您document.ready或您认为合适的地方调用它:

function removeHighlightedFirstItem() {
  var oldAutoCompleteShowSuggestions = PrimeFaces.widget.AutoComplete.prototype.showSuggestions;

  PrimeFaces.widget.AutoComplete.prototype.showSuggestions = function(query) {     
     //calling original ShowSuggestions 
     oldAutoCompleteShowSuggestions.apply(this, [query]);
     //after ShowSuggestions
     //remove first item highlight 
     var firstItem = this.items.eq(0);
     firstItem.removeClass('ui-state-highlight');
  }
}
Run Code Online (Sandbox Code Playgroud)

结果如下所示:

最终结果

注意:通过将autoHighlight = "false"属性添加到组件,您要求的功能可用于5.1.5,5.0.14和5.2 .