jquery自动完成仅选择渲染列表的第一个元素

时间:2018-06-02 18:57:00

标签: jquery jquery-ui-autocomplete

我遇到了jQuery自动完成的问题。从服务器获取数据的位置。自动完成功能列出了所有数据,但只有列表的第一个元素是可点击的。其他列表项显示为纯文本。 Web控制台中未显示任何错误。我的代码低于......

(function($) {
var searchDataList = [];
$('.searchContent').val("");
var $dataList = $('.searchContent');
$('.searchContent').keyup(
        function() {
            if ($(this).val().length > 2) {

                $.post('search/content/' + $(this).val(), function(data){
                    searchDataList = [];
                    for (var i = 0; i < data.length; i++) {
                        var fileType = data[i].fileType;
                        var url = "";
                        if (fileType == "a") {
                            url = "playSearchedTrack?trackId="
                                    + data[i].fileId;
                        } else if (fileType == "v") {
                            url = "playSearchedVideo?trackId="
                                    + data[i].fileId;
                        } else if (fileType == "f") {
                            url = "playSearchedFilm?trackId="
                                    + data[i].fileId;
                        } else if (fileType == "u") {
                            url = "userProfile?trackId="+data[i].fileId;                    
                        }
                         searchDataList.push({
                            value : data[i].fileName,
                            label : data[i].fileName,
                            hrefUrl : url
                        });
                    }
                    $(".searchContent").autocomplete({
                        source : searchDataList,
                        select : function(e, ui) {
                            alert(ui.item.hrefUrl);
                            window.location.href = ui.item.hrefUrl;
                        }
                    }).data("ui-autocomplete")._renderItem =  
                        function(ul,item) {                  
                        return $("<li></li>")
                        .append("<a>"+item.label+"</a>")
                        .appendTo(ul);

                    }
                });

            }

        });

})(jQuery);

enter image description here 只有第一个元素作为锚标记。

enter image description here 首先是纯文本的元素。没有出现作为锚标记。

0 个答案:

没有答案