在CoffeeScript中使用重音折叠的jQuery自动完成功能

时间:2012-01-19 19:21:17

标签: javascript jquery ruby-on-rails coffeescript jquery-autocomplete

我能够在CoffeeScript中使用jQuery自动完成功能,但是当我尝试使用重音折叠时,有些东西坏了。这是使用普通javascript

的jQuery文档提供的示例
$(function() {

var names = [ "Jörn Zaefferer", "Scott González", "John Resig" ];

var accentMap = {
    "á": "a",
    "ö": "o"
};
var normalize = function( term ) {
    var ret = "";
    for ( var i = 0; i < term.length; i++ ) {
        ret += accentMap[ term.charAt(i) ] || term.charAt(i);
    }
    return ret;
};

$( "#developer" ).autocomplete({
    source: function( request, response ) {
        var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
        response( $.grep( names, function( value ) {
            value = value.label || value.value || value;
            return matcher.test( value ) || matcher.test( normalize( value ) );
        }) );
    }
});
});

这是我制作的CoffeeScript版本

jQuery ->
    names = [
        "Jörn Zaefferer",
        "Scott González",
        "John Resig" ]

    accentMap = {
        "á": "a",
        "ö": "o"
    }

    normalize = (term) ->
        ret = ""
        for i in [0..term.length]
            ret += accentMap[term.charAt i] || term.charAt i
        return ret

    $("#search_word").autocomplete {
        source: (request, response) ->
            matcher = new RegExp $.ui.autocomplete.escapeRegex (request.term), "i" 
            response $.grep names, (value) ->
                value = value.label || value.value || value
                (matcher.test value) || (matcher.test normalize value)
    }

1 个答案:

答案 0 :(得分:0)

我经常使用http://js2coffee.org/以防这种情况

相关问题