1

我正在尝试使用 typeahead 的 matcher 函数来检查我的搜索是否没有返回结果。如果它没有返回任何结果,我想在搜索栏的末尾附加一个 div。但是,匹配器功能导致我的荧光笔中断并返回随机结果。有谁知道是否有办法在不使用 matcher 函数的情况下完成此任务,或者在这种情况下如何正确使用它?我想我可能采取了错误的方法。

$('.shop_search').typeahead({
        source: function (query, process) {
            map = {};
            $.each(data, function (i, data) {
                map[data.text] = {
                    address: data.text2,
                    name: data.text,
                    post: data.post
                };
                shops.push(data.text);
            });
            process(shops);
            shops = [];
        },

        minLength: 3,
        matcher: function (item) {
            if (item.indexOf(this.query) == -1) {
                $(".dropdown-menu").append($('<li><button class="btn" >Advanced                                                   Search</button></li>'));
                return true;
            }
        },

        highlighter: function (item) {
            var p = map[item];
            var itm = ''
                     + "<div class='typeahead_primary'>" + p.name + "</div>"
                     + "<div class='typeahead_secondary'>" + p.address +  </div>"
                     + "</div>"
                     + "</div>";
            return itm;
        },
     });
4

1 回答 1

0

在我看来,你忘记了一个“

+ "<div class='typeahead_secondary'>" + p.address +  </div>"

应该

+ "<div class='typeahead_secondary'>" + p.address +  "</div>"
于 2013-06-18T12:40:18.613 回答