Похоже, у вас есть пара вариантов.Во-первых, вы можете указать свое собственное действие выбора, используя опцию выбора в инициализаторе автозаполнения.
$(selector).autocomplete({
source: ... ,
select: function(value, data){
if (typeof data == "undefined") {
emitMessage('You selected: ' + value + "<br/>");
} else {
emitMessage('You selected: ' + data.item.value + "<br/>");
}
}
});
Если по какой-то причине этого недостаточно, вы можете отобразить свой собственный контент для списка автозаполненияи таким образом получите столько контроля, сколько вам нужно.
Вы делаете это путем монтирования патчей _renderItem fn, который и используется при автозаполнении для отображения каждого элемента в списке.Проверьте этот ответ о том, как это сделать.Работает в v1.8rc3.
Полагаю, в _renderItem вы могли бы сделать кликабельный <span>
и прикрепить любую понравившуюся логику к событию click.
Если вы идете по этому маршруту, вам может потребоваться отключить действие щелчка по умолчанию.Я думаю, что автозаполнение использует <a>
для элемента, который обеспечивает событие click.В этом случае вам нужно будет сбросить этот обработчик кликов.