0

我在一个 Rails 项目上工作,但我的 jquery 插件有问题:自动完成。我尝试实现一个包含多个单词的搜索引擎,我在我的网页中包含 1.8.0.min.js 和插件自动完成(jquery-ui-1.8.23.custom.min.js)以及下面的代码在另一个 .js 中还包括:

$(document).ready(function(){      
    var availableTags = [
    "ActionScript",
    "AppleScript",
    "Asp",
    "BASIC",
    "C",
    "C++",
    "Clojure",
    "COBOL",
    "ColdFusion",
    "Erlang",
    "Fortran",
    "Groovy",
    "Haskell",
    "Java",
    "JavaScript",
    "Lisp",
    "Scheme"
    ];
    function split( val ) {
    return val.split( /,\s*/ );
    }
    function extractLast( term ) {
    return split( term ).pop();
    }

    $( "#search" ).bind( "keydown", function( event ) {
    if ( event.keyCode === $.ui.keyCode.TAB &&
           $( this ).data( "autocomplete" ).menu.active ) {
           event.preventDefault();
        }
 })
     .autocomplete({
     minLength: 0,
        source: function( request, response ) {
        // delegate back to autocomplete, but extract the last term
        response( $.ui.autocomplete.filter(
        availableTags, extractLast( request.term ) ) );
        },
        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;
        }
    });
});

在我的应用程序中,这段代码不起作用,firebug 给我这个警告:

    TypeError: $("#search").bind("keydown", function (event) {if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {event.preventDefault();}}).autocomplete is not a function
    TypeError: $("#search").bind("keydown", function (e) {e.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active && e.preventDefault();}).autocomplete is not a function

当我在我的应用程序之外测试它时,它就可以工作。我在 Mandriva 12.04 TLS 上,并使用 firefox 15.0。

4

0 回答 0