检测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