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

时间:2015-01-07 09:30:31

标签: jsf-2 primefaces

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

1 个答案:

答案 0 :(得分:6)

由于您的“问题”来自此特定line

firstItem.addClass('ui-state-highlight');

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

我创建了一个小功能,可以在你拥有的每个自动完成功能上执行此操作,您可以在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');
  }
}

结果如下:

end-result

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