Добавление пользовательского обработчика для события закрытия, которое открывает результаты, работает, но немного раздражает, потому что результаты никогда не могут быть закрыты.Я хотел, чтобы результаты оставались открытыми после того, как пользователь сделал выбор, чтобы они могли выбирать больше, но закрывать, если пользователь не делает выбор и щелкает в другом месте, или если пользователь нажимает escape, или удаляет введенный текст, илиделает что-нибудь еще, что обычно закрывает результаты.Вот что сработало для меня:
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, когда пользователь делает выбор, однако, другое событие закрытия должно последовать немедленно и закрыть результаты в любом случае.Поэтому я добавил флажок «держать открытыми».Возможно, есть лучший способ справиться с этим осложнением.
Обратите внимание, я также добавил простую кнопку закрытия, чтобы пользователь мог вручную закрыть результаты, когда они закончили выбор.