0

私は Rails プロジェクトに取り組んでおり、jquery のプラグインに問題があります: オートコンプリート。複数の単語を使用して検索エンジンを実装しようとしています。Web ページに 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