Monkeypatching jQuery UI Autocomplete

Monkeypatching jQuery UI Autocomplete


Auch wenn jQuery und die jQuery UI Plugins einen flexiblen Einsatz in unseren Kundenprojekten gewährleisten stößt man manchmal an die Grenzen dessen was die Autoren der einzelnen Plugins vorgesehen haben. So kommt man nicht umher mittels Monkeypatching den vorhandenen Quellcode dynamisch zur Laufzeit zu modifizieren. Im fogenden Fall war es bsp. vom Kunden gewünscht dass das eingegebene Suchwort in der Vorschlagsliste des Autocomplete Felds markiert werden soll. Da jQuery UI Autocomplete dies per se nicht vorsieht und es keine Möglichkeit gab sich "ordentlich" per Callback in die entsprechende Stelle einzuhängen musste wie folgt vorgegangen werden:



$.ui.autocomplete.prototype._renderItem = function (ul, item) {
var term = $.ui.autocomplete.escapeRegex(this.term);
item.label = item.label.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)",
"i"
),
"<strong>$1</strong>"
);

return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};


Eintrag von Stephan Hochdörfer am 04.02.2013

Tags: Javascript, Web

Diese Webseite verwendet Cookies, um die Bedienfreundlichkeit zu erhöhen. Mit der Nutzung unserer Webseite wird das Einverständnis erklärt, dass wir Cookies verwenden. Weitere Informationen.