Не могу переопределить jQuery UI автозаполнение метода renderItem несколько раз - PullRequest
8 голосов
/ 24 августа 2011

Он корректно переопределяется при первом обнаружении автозаполнения, но ничего не делает с остальными. Вместо этого он загружает оригинальный метод _renderitem, который вы можете увидеть в https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.autocomplete.js#L449.

$(".someClassWithMultipleItemsOnDOM").autocomplete({
        delay:500,
        minLength:2,
        source:path"
        .....   
}).data( "autocomplete" )._renderItem = function( ul, item ) {

спасибо заранее

Ответы [ 2 ]

20 голосов
/ 29 сентября 2011

Существует решение этой проблемы:

var autoc = {
    delay: 500,
    minLength: 2,
    source: path,
    .....   
};

var renderItem = function (ul, item) {
    return $("<li></li>")
        .data("item.autocomplete", item)
        .append("<a>" + item.label + "<br/>" + item.desc + "</a>")
        .appendTo(ul);
};

$(".someClassWithMultipleItemsOnDOM").each(function (i) {
     $(this).autocomplete(autoc).data("autocomplete")._renderItem = renderItem;
}
9 голосов
/ 22 мая 2012

Вы можете переопределить _renderItem

$.ui.autocomplete.prototype._renderItem = function (ul, item) { ... };
...