Javascript jquery 1.8.2自动完成+。live()+。create(),不一起工作

Javascript jquery 1.8.2自动完成+。live()+。create(),不一起工作,javascript,jquery,jquery-ui,autocomplete,jquery-1.8,Javascript,Jquery,Jquery Ui,Autocomplete,Jquery 1.8,我在一个asp.NETMVCWeb应用程序中工作,我使用的是jQueryVersion1.8.2和jQueryUI1.8.24。我有以下自动完成代码:- $("#ServerTag,#SDTag,#FirewallTag,#RouterTag,#SwitchTag").live("focus.autocomplete", null, function () { var URL ="@Url.Content("~/Server/AutoComplete")"; $

我在一个asp.NETMVCWeb应用程序中工作,我使用的是jQueryVersion1.8.2和jQueryUI1.8.24。我有以下自动完成代码:-

$("#ServerTag,#SDTag,#FirewallTag,#RouterTag,#SwitchTag").live("focus.autocomplete", null, function () {
        var URL ="@Url.Content("~/Server/AutoComplete")";

        $(this).autocomplete({
            minLength: 1, delay: 1000,
            source: function (request, response) {
                $.ajax({
                    url: URL,
                    cacheLength:1,
                dataType: "json",

                data: {
                    term: request.term,
                    rackid: "@Model.Rack.TMSRackID.ToString()",
                    },
                success: function (data) {
                    response(data);
                },
                select: function (event, ui) {
                    return false;
                    },
                create: function () {
                    $(this).data("autocomplete")._renderItem = function (ul, item) {

                        return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b><br>' + '<span style="color: #737373;font-size: 12px;font-weight: 300;line-height: 16px;font-family: Helvetica,Arial,sans-serif;white-space: owrap;">' + item.resourcename + ' | ' + item.customername + ' | ' + item.sitename + '<hr style="padding: 0px; margin: 0px;">' + '</span></a>')
                                        .appendTo(ul);
                    };
                }
            });
        },

        });
    });
我面临的问题是,自动完成结果将只包含一个标签,而不包含在create部分中定义的连接字符串

有谁能给我提建议吗?看来我的.create没有任何效果


谢谢

我看到的一个可能的问题是在您的配置中,
create
select
选项被传递到ajax设置,而不是autocomplete。。所以试试看

$("#ServerTag,#SDTag,#FirewallTag,#RouterTag,#SwitchTag").live("focus.autocomplete", null, function () {
    var URL = "@Url.Content("~ / Server / AutoComplete ")";

    $(this).autocomplete({
        minLength: 1,
        delay: 1000,
        source: function (request, response) {
            $.ajax({
                url: URL,
                cacheLength: 1,
                dataType: "json",

                data: {
                    term: request.term,
                    rackid: "@Model.Rack.TMSRackID.ToString()",
                },
                success: function (data) {
                    response(data);
                }
            });
        },
        select: function (event, ui) {
            return false;
        },
        create: function () {}
    });

    //this should happen outside the ajax callback
    $(this).data("autocomplete")._renderItem = function (ul, item) {
        return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b><br>' + '<span style="color: #737373;font-size: 12px;font-weight: 300;line-height: 16px;font-family: Helvetica,Arial,sans-serif;white-space: owrap;">' + item.resourcename + ' | ' + item.customername + ' | ' + item.sitename + '<hr style="padding: 0px; margin: 0px;">' + '</span></a>')
            .appendTo(ul);
    };
});
$(“#服务器标签,#SDTag,#防火墙标签,#路由器标签,#开关标签”).live(“focus.autocomplete”,null,函数(){
var URL=“@URL.Content(“~/Server/AutoComplete”);
$(此)。自动完成({
最小长度:1,
延误:1000,
来源:功能(请求、响应){
$.ajax({
url:url,
缓存长度:1,
数据类型:“json”,
数据:{
期限:request.term,
rackid:“@Model.Rack.TMSRackID.ToString()”,
},
成功:功能(数据){
答复(数据);
}
});
},
选择:功能(事件、用户界面){
返回false;
},
创建:函数(){}
});
//这应该发生在ajax回调之外
$(此).data(“自动完成”)。\u renderItem=函数(ul,项){
返回$('
  • ').data('item.autocomplete',item.).append('++'+item.label++'
    '++'+'+item.resourcename++'|'+item.customername++'+item.sitename++'
    '+')) .附录(ul); }; });
  • 但仅在jQuery 1.9中被删除,因此在jQuery 1.8中它应该可以正常工作。我正在使用jQuery 1.8.2,并且自动完成部分工作。。。但是.create部分似乎没有任何效果。
    $("#ServerTag,#SDTag,#FirewallTag,#RouterTag,#SwitchTag").live("focus.autocomplete", null, function () {
        var URL = "@Url.Content("~ / Server / AutoComplete ")";
    
        $(this).autocomplete({
            minLength: 1,
            delay: 1000,
            source: function (request, response) {
                $.ajax({
                    url: URL,
                    cacheLength: 1,
                    dataType: "json",
    
                    data: {
                        term: request.term,
                        rackid: "@Model.Rack.TMSRackID.ToString()",
                    },
                    success: function (data) {
                        response(data);
                    }
                });
            },
            select: function (event, ui) {
                return false;
            },
            create: function () {}
        });
    
        //this should happen outside the ajax callback
        $(this).data("autocomplete")._renderItem = function (ul, item) {
            return $('<li>').data('item.autocomplete', item).append('<a>' + '<b>' + item.label + '</b><br>' + '<span style="color: #737373;font-size: 12px;font-weight: 300;line-height: 16px;font-family: Helvetica,Arial,sans-serif;white-space: owrap;">' + item.resourcename + ' | ' + item.customername + ' | ' + item.sitename + '<hr style="padding: 0px; margin: 0px;">' + '</span></a>')
                .appendTo(ul);
        };
    });