JQuery автозаполнение с категориями и выбором - PullRequest
3 голосов
/ 16 марта 2011

У меня возникли проблемы с реализацией функции автозаполнения jQuery с категориями и пользовательским отображением.

Я получаю сообщение о том, что «ui.item» не определено, когда я выбираю одну из записей. Мой код ниже

$jq.widget("custom.categoryautocomplete", $jq.ui.autocomplete, {
    _renderMenu: function(ul, items){
        var self = this;
        var currentCategory = "";
        $jq.each(items, function(index, item){
            if(item.category != currentCategory){
                ul.append(" <li class='ui-autocomplete-category'>" + item.category + "</li>");
                currentCategory = item.category;
            }
            self._renderItem(ul, item);
        });
    }
});

$jq(function(){
    $jq("#tlf\\:tlfs").categoryautocomplete({
        source: getAutoCompleteSource(),
        focus: function(event, ui){
            $jq("#tlf\\:tlfs").val(ui.item.label);
            return false;
        },
        select: function(event, ui){
            $jq("#tlf\\:tlfs").val("");

            // JavaScript code to select the row.
            selectRow(ui.item.rownum);

        return false;
        }
    }).data("categoryautocomplete")._renderItem = function (ul, item) {
         return $jq("<li></li>")
            .data("item.categoryautocomplete", item)
            .append("<a>" + item.type +" - " + item.uid + "<br>" + item.desc + "</a>")
            .appendTo(ul);
    };
});

Когда я начинаю печатать, я вижу выпадающий список, поэтому я предполагаю, что мой JSON сформирован правильно. Любые идеи, что может быть причиной ошибки «ui.item is undefined»?

Редактировать: После дальнейшего тестирования он работает, когда я удаляю метод custom _renderItem. Однако я не уверен, почему это вызывает проблему.

1 Ответ

3 голосов
/ 16 марта 2011

Ну, я понял свою проблему.Я не понял, что именно сделал

.data("item.categoryautocomplete", item)

.Прочитав его, я изменил его на

.data("item.autocomplete", item)

, и все выглядит нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...