检测jQuery UI自动完成

Sol*_*nal 7 jquery jquery-ui

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

if ($("#q").autocomplete)
{
  //Do something
}
Run Code Online (Sandbox Code Playgroud)

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

Ran*_*ndy 11

if ($("#q").hasClass("ac_input")) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

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

if ($("#q").hasClass("ui-autocomplete-input")) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*Ali 9

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

if ($('Selector').data('autocomplete')) {
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*bin 5

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

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

更多细节可以在http://api.jqueryui.com/autocomplete/#method-instance找到