以下がハックされ、基本的にはjQueryのスタイリングと選択を否定:
はここに私の例です。検索コールバックを実装し、そこにjQueryのスタイルを削除するためのハックを追加し、マウスが移動したときにハックを削除しました。
DEMO
注:私はまだ入力してキーを試す機会を持っていません。
$('#query').autocomplete({
source: [
"A",
"AAA",
"AAAAA",
"AAAAAAAAA",
"AAAAAAAAA",
"AAAAAAAAAAA",
"AAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAA"
],
search: function(event, ui) {
$(document).on('mouseenter', '.ui-menu-item a', function(e) {
//Remove jQuery styling and selection.
$(this).removeClass('ui-state-hover');
this.id = '';
e.preventDefault();
}).one('mousemove', '.ui-menu-item a', function(e) {
//implement mouse move once if moved inside the same li>a
$(this).addClass('ui-state-hover');
this.id = 'ui-active-menuitem';
//unbind the mouse event so it works as normal
$(document).on('mouseenter', '.ui-autocomplete', function(e) {
$(document).off('mouseenter', '.ui-menu-item a');
});
});
}
});
$('#query').keypress(function(ev) {
if (ev.keyCode == 13) {
alert('query: ' + $(this).val());
return (false);
}
});
Enterキーの機能を現状のままにしておかないと、オートコンプリートのデフォルト選択を削除する方が良いでしょうか? – j08691