Я немного опоздал, но сегодня я столкнулся с той же проблемой.
Все сводится к всплывающему событию при наведении курсора мыши от дочерних объектов, у которых явно отсутствует свойство autocompleteIndex (оно присваивается только элементам LI. Следовательно, если указатель на один из дочерних элементов, выделение исчезает.
В итоге я изменил jrails_autocomplete.js следующим образом:
onHover: function(e) {
var my_index = e.target.autocompleteIndex;
if (!my_index) {
my_index = $(e.target).closest('li').attr('autocompleteIndex');
}
if (this.index != my_index) {
this.index = my_index;
this.render();
}
stopEvent(e);
},
Теперь, если нам не удалось найти свойство autocompleteIndex в элементе, вызвавшем событие mouseover, мы смотрим на ближайшего родителя типа 'li' и используем все, что там есть.
Немного хакерский, но, по крайней мере, сработал для меня.
В отношении sidenote мне также приходилось щекотать по клику, или, когда я щелкнул мышью и нажал, скажем, элемент DIV, индекс был потерян. На самом деле, я удивляюсь, почему это было в первую очередь, в интерфейсе клавиатуры тоже нет ничего похожего.
onClick: function(e) {
/*this.index = e.target.autocompleteIndex;*/
this.selectEntry();
this.hide();
},