Typeahead.js + Bloodhound远程数据:如何获取调用对象引用?

我正在尝试干掉一些JQuery代码,该代码初始化了一个使用带有远程数据源的Bloodhound建议引擎的typeahead.js插件。 这是到目前为止的代码:

var locsData = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace("name"), queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url: "/locations/search.json?q=%QUERY", ajax: { beforeSend: function(xhr, settings) { $("#typeahead1").addClass('loading-text'); }, complete: function(xhr, status) { $("#typeahead1").removeClass('loading-text'); } } }, limit: 100 }); locsData.initialize(); $("#typeahead1").typeahead({ minLength: 3 }, { name: "locs", displayKey: "name", source: locsData.ttAdapter() }); 

我试图将这段代码概括为一堆不同的文本字段; 这应该不是问题:我可以使用$(".myClass").typeahead({ ... })并且将为所有这些控件初始化插件。 我面临的问题是使用Bloodhound配置中的ajax回调函数( beforeSendcomplete等):我正在为这些函数中的文本字段切换“loading.gif”类,我需要该代码来获取对调用对象的引用。

如何在这些回调中获得对调用文本字段的引用? 我需要这样的东西:

 $().addClass('loading-text'); 

我希望有人可以帮助我。 提前致谢!


编辑 – 现在我使用以下代码以某种方式解决了我的问题,但是关于获取调用对象引用 (这个主题)的问题仍然悬而未决。

  if ($(document.activeElement).typeahead != null) { $(document.activeElement).addClass('loading-text'); }