JQuery自动完成停止工作

时间:2011-05-13 10:34:55

标签: jquery

我的Jquery ui自动完成功能在合并应用程序时停止工作。

我的库是(所有脚本):

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.6.custom.min.js"></script>
    <script type="text/javascript" src="js/jquery.bubblepopup.v2.3.1.min.js"></script>
<script src="js/modernizr-1.6.min.js"></script>
<script type="text/javascript" src="js/jquery-autocomplete/jquery.ui.autocomplete.js"></script>
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.ui.core.js"></script>
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.ui.position.js"></script>
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.ui.widget.js"></script>
    <link rel="stylesheet" href="js/jquery-autocomplete/jquery.autocomplete.css" type="text/css" />
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.autocomplete.js"></script>
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.autocomplete.min.js"></script>
    <script type="text/javascript" src="js/jquery-autocomplete/jquery.autocomplete.pack.js"></script>

代码:

$(function () {
    function split(val) {
        return val.split(",\n");

    }

    function extractLast(term) {
        return split(term).pop();
    }

    $("#responsableUtu")
    // don't navigate away from the field on tab when selecting an item
    .bind("keydown", function (event) {
        if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
            event.preventDefault();
        }




    })

    .autocomplete({

        source: function (request, response) {
            $.getJSON("username.html?startWith=" + extractLast(request.term),

            {

            }, response);
        },

        search: function () {
            // custom minLength
            var term = extractLast(this.value);
            if (term.length < 3) {
                return false;
            }
        },
        focus: function () {
            // prevent value inserted on focus
            return false;
        },
        select: function (event, ui) {
            var terms = split(this.value);
            // remove the current input
            terms.pop();
            // add the selected item
            terms.push(ui.item.value);
            // add placeholder to get the comma-and-space at the end
            terms.push("");
            this.value = terms.join(" ");
            return false;
        }


    });
});

找到自由人。怎么了?

1 个答案:

答案 0 :(得分:0)

您将自动填充脚本包括四次(未压缩的脚本的两倍,以及min和pack版本的一次),并且当您已经包含整个库时重新包含jQuery UI的模块。

尝试用以下内容替换<script />块:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" type="text/javascript"></script>
<script src="js/jquery.bubblepopup.v2.3.1.min.js" type="text/javascript"></script>
<script src="js/modernizr-1.6.min.js" type="text/javascript"></script>

这应该给你一个“干净”的环境(我使用谷歌的CDN,因为我不知道你的文件中有什么)。

它能解决问题吗?