【问题标题】:jQuery autocomplete with accent folding in CoffeeScriptCoffeeScript中带有重音折叠的jQuery自动完成
【发布时间】:2012-01-20 04:22:22
【问题描述】:

我能够在 CoffeeScript 中很好地使用 jQuery 自动完成功能,但是当我尝试使用重音折叠来实现它时,出现了问题。这是 jQuery 文档中使用普通 javascript 提供的示例

$(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)
    }

【问题讨论】:

  • 你可以试试:js2coffee.org
  • 这实际上比你想象的更有帮助。如果不是对我的帖子的评论,我会让你作为答案。
  • 所以我做了一个答案 ;) 很高兴它很有用

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多