检测jQuery UI自动完成

如何检测输入框当前是否是jQuery UI自动完成? 似乎没有本地方法,但我希望有这样简单的东西:

if ($("#q").autocomplete) { //Do something } 

然而,有条件的似乎总是如此。

 if ($("#q").hasClass("ac_input")) { // do something } 

UPDATE

JQuery UI自动完成小部件中的类名现在是’ui-autocomplete-input’,因此代码将是:

 if ($("#q").hasClass("ui-autocomplete-input")) { // do something } 

您还可以通过以下代码行找到附加到输入元素的自动完成行为:

 if ($('Selector').data('autocomplete')) { } 

您可以使用

 if( $.isFunction( $.fn.autocomplete ) ){ } 

.isFunction是jQuery lib的一部分。 (引用: http : //james.padolsey.com/jquery/….isFunction )

这是真的,因为一旦你包含了自动完成js,每个$()对象现在都定义了一个autocomplete()方法(如果你想激活这些元素的自动完成)。 你的if()只是说该函数不是null。

遗憾的是,我没有一个系统可以检查这个(今天离开笔记本电脑回家),但我相信自动完成function会为它正在使用的元素添加一个css类名。 你可以找那个。

如果页面中已包含自动完成jquery UI插件,并且您只想检查是否已使用自动完成function设置特定(输入)元素,则可以使用官方API方法 ,如下所示:

 if ($("#q").autocomplete("instance")) { console.log("autocomplete already setup for #q"); } else { console.log("NO autocomplete for #q"); } 

有关详细信息,请访问http://api.jqueryui.com/autocomplete/#method-instance