我能够在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)
}