Мне удалось добавить ссылку справа от элементов автозаполнения jQuery, используя следующий код:
function onClientSelect(event, ui) {
// My handling code goes here
event.preventDefault();
}
$("#mypage input[name='client']").autocomplete({
minLength: 1,
appendTo: $(this).parent(),
source: '/filter_client/',
select: onClientSelect,
focus: function (event, ui) {
event.preventDefault();
},
}).data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
Мой сервер возвращает метку элемента в этом формате:
<div class="ac-item-lb">My Item Label</div>
<a class="ac-item-a" href="/url_to_go_to/" target="_blank">View Detail</a>
Что я хочу сделать, так это открыть ссылку на новой вкладке, когда я нажимаю "Просмотр детали", которая нажимает любую другую область, выполняемую onClientSelect, как обычно. Однако в данный момент щелчок левой кнопкой мыши по ссылке также выполняется onClientSelect
. Единственный способ открыть ссылку - щелкнуть среднюю колесо или правую кнопку мыши и выбрать "открыть в новой вкладке".
Я попытался связать обработчик события клика по ссылке с event.stopImmediatePropagation(), но это, похоже, не работает. Кто-нибудь знает, как это исправить?