To expatiate Andrew Whittaker's answer a bit, the source
option of jQuery UI Autocomplete is used to specify an array containing the items that are to be displayed in the drop-down list once the widget is triggered. It can be defined as such an array, a function that returns such an array, or a URL to a resource which produces such an array.
If source
is defined as an function, the parameters of the function, request
and response
, can be used to help compose its return array and supply it to the widget, respectively. request
in particular is of interest to you, since its member, term
contains the value of the input element to which the widget is affixed, at the time the function is invoked.
See where I'm going with this? Its pretty simple, parse request.term
for the text between the @
symbol of interest and the cursor, and use that text to create the array to supply to the widget. You'll need to do a little work (or employ some ready-made functions) to be able to locate the cursor reliably in a cross-browser compatible way, however.
Check out Mentionator if you're looking for an existing plug-in that provides the functionality you're trying to emulate. It is well structured, easy to follow, and copiously commented, so you should have little trouble understanding how to take the approach I've described. It is also maintained by yours truly:) .