Добавьте ссылку к объекту автоматического заполнения JQueryUI

Когда пользователь начинает вводить на поле поиска, страница предложения возвращает последний объект из всех наборов, соответствующих что NAMA плюс другие данные.

Я хотел бы показать что объект (вдоль его изображения), и ссылка для "наблюдения всех объектов от этого набора".

Я могу сделать (большая часть) что со следующим кодом:

$('#search').autocomplete({
    source: function (request, response) {
        $.ajax({
            url: suggesturl,
            dataType: 'json',
            data: request,
            success: function (data) {
                response(data.map(function (value) {
                    return {
                        'label': '<img src="' + value.thumbsmall + '" />' + value.name + '<a href="/">More items from this collection...</a>',
                        'value': value.fullname
                    };  
                }));
            }   
        }); 
    },  
    minLength: 3
})

Проблема состоит в том, что, хотя ссылка появляется в поле, когда это нажало, это проигнорировано, и значение по умолчанию select действие выполняется (объект value помещается в текстовое поле).

7
задан Tordek 23 March 2010 в 02:00
поделиться

1 ответ

Похоже, у вас есть несколько вариантов. Во-первых, вы можете указать собственное действие выбора, используя параметр выбора в инициализаторе автозаполнения.

$(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 вы можете отобразить интерактивный и прикрепить любую логику к событию щелчка.

Если вы пойдете по этому маршруту, вам может потребоваться ВЫКЛЮЧИТЬ действие щелчка по умолчанию. Я думаю, что автозаполнение использует для элемента, который предоставляет событие щелчка. В этом случае вам нужно отключить этот обработчик кликов.

6
ответ дан 7 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: