結果を再度開く close イベントのカスタム ハンドラーを追加すると機能しますが、結果を閉じることができないため、少し面倒です。ユーザーが選択を行った後も結果を開いたままにして、さらに選択できるようにしたかったのですが、ユーザーが選択を行わずに他の場所をクリックした場合、またはユーザーがエスケープを押した場合、または入力テキストを削除した場合は閉じます。通常は結果を閉じるその他の処理を行います。これが私のために働いたものです:
close : function (event, ui) {
event.preventDefault();
if ( event.which == 1 ) {
$("ul.ui-autocomplete").show();
$("ul.ui-autocomplete").data('keep-open', 1);
}
else if ( $("ul.ui-autocomplete").data('keep-open') == 1) {
$("ul.ui-autocomplete").show();
$("ul.ui-autocomplete").data('keep-open', 0);
}
return false;
}
イベントは、ユーザーが選択を行っているときに 1 になりますが、別のクローズ イベントがすぐに続き、とにかく結果を閉じます。そこで、keep-open フラグを追加しました。おそらく、その複雑さを処理するためのより良い方法があります。
単純な閉じるボタンも追加したので、ユーザーは選択が完了したら手動で結果を閉じることができます。