Javascript jQueryUI自动完成的问题
我编写了以下代码,在文本框上使用jQueryUI的自动完成方法Javascript jQueryUI自动完成的问题,javascript,jquery,html,jquery-ui,autocomplete,Javascript,Jquery,Html,Jquery Ui,Autocomplete,我编写了以下代码,在文本框上使用jQueryUI的自动完成方法 $(function() { $('#project').autocomplete({ source: function(request, response){response(Object.getOwnPropertyNames(projects))}, minLength: 0, messages: {noResults: '', results:
$(function() {
$('#project').autocomplete({
source: function(request, response){response(Object.getOwnPropertyNames(projects))},
minLength: 0,
messages: {noResults: '', results: function(){}},
autoFocus: true
}).on('focus', function(event) { //Display the suggestions list on focus
$(this).autocomplete("search", "");
});
})
我面临以下问题:
.ui-autocomplete a:hover {background-color: #C1CDCD;cursor:default}
但是,当我使用上/下箭头导航列表时
相应的值显示在文本字段中,但元素显示在
列表不会突出显示谢谢您的时间。您可以通过使用“打开”和“聚焦”方法,然后关闭“自动聚焦”,使其不会取消高亮显示第一项来完成您想要的操作。我还使用了一个名为first open的类,允许在第一个项目最初失去焦点时再次突出显示它 代码: codez:
projects = {Apple: "fruit",Apostle: "Saint"};
$(function () {
$('#project').autocomplete({
source: function (request, response) {
response(Object.getOwnPropertyNames(projects));
},
minLength: 0,
messages: {
noResults: '',
results: function () {}
},
//autoFocus: true,
open: function( event, ui ) {
$('.ui-autocomplete > li:first-child a').addClass('ui-state-focus first_open');
},
focus: function( event, ui ) {
if(ui.item.value != $('.ui-state-focus').text()){
$('.first_open').removeClass('ui-state-focus first_open');
}
},
}).on('focus', function (event) { //Display the suggestions list on focus
$(this).autocomplete("search", "");
});
});
你能发一个JSFIDLE吗?似乎有两个简单的css规则可以实现这一点。@Rooster:刚刚在问题中添加了一个小把戏,您缺少了jquery ui自动完成css。你不必设计它yourself@PabloMat阿斯戈麦斯:哦,我不知道。看看it@raul添加css并删除你的,然后问题就解决了,我测试它现在就像魔术一样工作!虽然我不太了解新代码,但是当建议打开时,列表中的第一项会得到类
first\u open
以及ui状态焦点
,这是autosuggest用来突出显示的。然后一个项目被聚焦,需要从第一个项目中删除ui状态聚焦
类,但只有第一次焦点被更改。这就是这两种方法的原理。