Permalink
/* | |
* jQuery UI Autocomplete HTML Extension | |
* | |
* Copyright 2010, Scott González (http://scottgonzalez.com) | |
* Dual licensed under the MIT or GPL Version 2 licenses. | |
* | |
* http://github.com/scottgonzalez/jquery-ui-extensions | |
*/ | |
(function( $ ) { | |
var proto = $.ui.autocomplete.prototype, | |
initSource = proto._initSource; | |
function filter( array, term ) { | |
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); | |
return $.grep( array, function(value) { | |
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() ); | |
}); | |
} | |
$.extend( proto, { | |
_initSource: function() { | |
if ( this.options.html && $.isArray(this.options.source) ) { | |
this.source = function( request, response ) { | |
response( filter( this.options.source, request.term ) ); | |
}; | |
} else { | |
initSource.call( this ); | |
} | |
}, | |
_renderItem: function( ul, item) { | |
return $( "<li></li>" ) | |
.data( "item.autocomplete", item ) | |
.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) ) | |
.appendTo( ul ); | |
} | |
}); | |
})( jQuery ); |