【问题标题】:jQuery autocomplete with categories and selection带有类别和选择的jQuery自动完成
【发布时间】:2011-03-16 18:39:41
【问题描述】:

我在使用类别和自定义显示实现 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 未定义”错误?

编辑:经过进一步测试,当我删除 custom _renderItem 方法时,它似乎可以工作。但是,我不确定为什么会导致问题。

【问题讨论】:

    标签: javascript jquery autocomplete


    【解决方案1】:

    好吧,我发现了自己的问题。没看懂

    .data("item.categoryautocomplete", item)
    

    确实做到了。看完后,我把它改成了

    .data("item.autocomplete", item)
    

    一切似乎都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-06
      • 2011-04-23
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多