如何让 jQuery UI 自动完成功能在旧版本的 jQuery UI 中工作?

How can I make jQuery UI Autocomplete work in an older version of jQuery UI?

我正在尝试向我的网页添加一个自动完成小部件,一个个性化的小部件。在我自己的配置出现几个问题后,我决定直接在我的网页中尝试 official example,完成我在那里阅读的所有内容,然后替换这个

.autocomplete( "instance" )._renderItem = function( ul, item ) {
  return $( "<li>" )
    .append( "<div>" + item.label + "<br>" + item.desc + "</div>" )
    .appendTo( ul );
};

有了这个

.data("uiAutocomplete")._renderItem = function (ul, item) {
    return $("<li>")
    .append("<div>" + item.label + "<br>" + item.desc + "</div>")
    .appendTo(ul);
};

因为我正在使用 jQuery UI 1.10.4 并且我无法更新它(我的老板不希望我这样做)。我无法使该示例工作,而且我知道如果我让它工作,我将不会有任何问题来适应它必须做的事情。

拜托,你知道如何让它发挥作用吗?提前致谢。

好吧,最后我放弃了。我克服这种情况的方法是将我正在转换的 DTO 调整为 JSON 并将其发送到浏览器以自动完成所需的格式。该格式包含三个字段:

{
    id: ...,
    label: ...,
    value: ...
}

之后,我就这样配置了自动完成:

$("#<%= nuevoPadrePem.ClientID %>").autocomplete({
    minLength: 6,
    source: function (request, response) {
        var term = request.term;
        var result = [];

        $.ajax({
            url: 'PMENUEVAVERS.aspx/GetResultadosBusqueda',
            data: JSON.stringify({ texto: term }),
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (dtos) {
                response(dtos.d);
            }
        });
    },
    select: function (event, ui) {
        var dto = ui.item;
        $("#<%= hdSelectedNuevoPadrePem.ClientID %>").val(dto.id);
        $("#<%= nuevoPadrePem.ClientID %>").css('color', '#00BE00');
    }
})

而且它没有问题。